代码之家  ›  专栏  ›  技术社区  ›  Webwoman

什么是互有要求的错误?

  •  3
  • Webwoman  · 技术社区  · 6 年前

    我看到一个解释 this website 也就是说:

    _ interoprequiredefault():es6 commonjs模块按原样使用(如果它有默认导出,则它有一个名为default的属性)。正常人 commonjs模块成为属性default的值。在其他方面 换句话说,在后面的例子中,模块导出成为默认的 出口。

    在代码中,通常有几个 _interopRequireDefault 写的。

    所以如果我理解的好的话,因为默认导出是作为一个总实体导出的整个文件上的一堆键/值, _要求间故障 允许选择在默认导出特定代码时将输入哪些模块吗?

    1 回复  |  直到 6 年前
        1
  •  12
  •   Nishant    5 年前

    允许代码使用为nodejs和es6编写的模块。

    在es6和cjs(通用js规范)中,模块的导出方式有所不同。

    公共JS中的模块:

    module.exports = function () {};
    

    ES6中的模块:

    export default function () {}
    

    _要求间故障 有一个相当简单的逻辑:

    function _interopRequireDefault(module) {
      const
          isCJSModule = module && module.__esModule,
          cjsStyedModule = { default: module };
    
      return isCJSModule ? module: cjsStyedModule;
    }
    

    在ES6之前存在CJS。node仍然使用cjs版本和最初为nodejs编写的所有模块。

    虽然nodejs现在在实验上支持es6模块,但是如果您使用 --实验的 将模块文件标记并命名为.mjs。