From 40c5289e2bdba3de2e784de043ec8843430acb11 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Thu, 9 Oct 2014 14:39:16 -0700 Subject: [PATCH] Defer requires until the cache is populated --- src/module-cache.coffee | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/module-cache.coffee b/src/module-cache.coffee index ec7dc6369..142395626 100644 --- a/src/module-cache.coffee +++ b/src/module-cache.coffee @@ -1,7 +1,8 @@ Module = require 'module' path = require 'path' -fs = require 'fs-plus' -semver = require 'semver' + +fs = null # Defer so the cache is used +semver = null # Defer so the cache is used nativeModules = process.binding('natives') @@ -15,6 +16,10 @@ cache = registered: false resourcePath: null +requireDependencies = -> + fs ?= require 'fs-plus' + semver ?= require 'semver' + loadDependencies = (modulePath, rootPath, rootMetadata, moduleCache) -> for childPath in fs.listSync(path.join(modulePath, 'node_modules')) continue if path.basename(childPath) is '.bin' @@ -172,6 +177,8 @@ if cache.debug foundPath exports.create = (modulePath) -> + requireDependencies() + modulePath = fs.realpathSync(modulePath) metadataPath = path.join(modulePath, 'package.json') metadata = JSON.parse(fs.readFileSync(metadataPath)) @@ -201,6 +208,7 @@ exports.register = ({resourcePath, devMode}={}) -> cache.registered = true cache.resourcePath = resourcePath registerBuiltins(devMode) + requireDependencies() return