代码之家  ›  专栏  ›  技术社区  ›  Ashwin Hegde

在节点v8(v8.9.3或更高版本)中,commonjs要求模块创建新上下文

  •  0
  • Ashwin Hegde  · 技术社区  · 7 年前

    我们正在使用helpers(Dust.js)对库进行模板化,helper库在代码库中具有以下设计模式。

    (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中,导出工厂(require('dust-linkedin')工作正常,但在切换到节点v8(v8.9.3)之后,我们看到帮助程序没有得到执行,正在更改 工厂(需要('dust-linkedin')) 工厂 在helper库中,事情开始起作用。

    在节点v8中,当需要(“dust-linkedin”)时,它是否会创建一个新的上下文/对象,因为我们正在失去所有的助手?commonjs require行为是否有任何变化?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Ashwin Hegde    7 年前

    解决方案已在PR中固定 https://github.com/krakenjs/festucam/pull/4