这是我目前正在经历的一个简化示例。
index.js
var config = require('../config.js');
console.log(config.globalModules); //undefined
config.js使用外部包(npm
)来帮助填充其module.exports
对象。
config.js
var npm = require('npm');
var glob = require('glob');
module.exports = {}
// The majority of methods rely on properties which are not set until npm.load has been called.
npm.load(function (er) {
// now i can use npm properties and methods
module.exports.globalModules = glob.sync('*', { cwd: npm.globalDir})
module.exports.localModules = glob.sync('*', { cwd: npm.dir})
});
我已经在这里阅读了所有异步/同步回调问题,并试图通过使用同步包解决这个问题但是失败了。我尝试过使用sync
和wait.for
,但var config
仍在返回一个空对象。
如果需要/返回var config
,我如何确保module.exports
aka(config.js
)完全填充。
答案 0 :(得分:0)
npm.load
在其回调函数之前很久就会返回,因此{/ 1>}在之后设置为,并使用module.exports.globalModules
进行打印。
您可以使用console.log
设置一些延迟,以便及时完成。