0
我们正在研究带有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中有没有需要改变的行为?
我已经使用了许多使用UMD模式的库。从节点6到节点8没有任何问题。请编辑您的问题以详细说明您希望发生的事情,以及发生了什么*而不是*。如果发生异常,请发布完整的堆栈跟踪。其实,你应该编辑你的问题,让人们重现问题([mcve])。你说的“有效”的注释代码并不是正确的。 – Louis
感谢Louis指出,会修改这个问题 –
[dust-helpers]的代码(https://github.com/linkedin/dustjs-helpers/blob/master/dist/dust-helpers.js)有'module .exports.registerWith = factory;''module.exports = factory(require('dust-linkedin'));'但你显示的代码没有它。 – Louis