在Node v8(v8.9.3或更高版本)中,commonjs需要模块创建新的上下文
我们正在研究带有helpers(Dust.js)的模板库,该辅助库在代码库中具有以下设计模式。在Node v8(v8.9.3或更高版本)中,commonjs需要模块创建新的上下文
(function(root, factory) { if (typeof define === 'function' && define.amd && define.amd.dust === true) {
define(['dust-linkedin'], factory);
} else if (typeof exports === 'object') {
module.exports = factory(require('dust-linkedin'));
// module.exports = factory; // <<--- This is working on v8
} else {
factory(root.dust);
}
}(this, function (dust) {
...
});
在节点V6,出口工厂(要求(“尘埃LinkedIn”))工作正常,但切换到节点V8(v8.9.3)之后,我们看到的助手都没有得到执行,改变厂(require('dust-linkedin'))到工厂里面的帮助程序库里,东西开始工作。
在节点v8中,require('dust-linkedin')是否会创建一个新的上下文/对象,因此我们失去了所有的助手? commonjs中有没有需要改变的行为?
回答:
该解决方案在PR中已修复https://github.com/krakenjs/festucam/pull/4
以上是 在Node v8(v8.9.3或更高版本)中,commonjs需要模块创建新的上下文 的全部内容, 来源链接: utcz.com/qa/265568.html