在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

回到顶部