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

ES6模块的“导入”正式兼容CommonJS和AMD?

  •  4
  • Jecimi  · 技术社区  · 9 年前

    本文内容如下: https://hacks.mozilla.org/2015/08/es6-in-depth-modules/

    据记载

    新标准旨在与现有的CommonJS和AMD模块进行互操作。

    更准确地说

    所有CommonJS和AMD模块都作为默认导出呈现给ES6

    如果真的是这样的话,我们只需要一个ES6聚合物填充物,我们就不需要使用其他任何东西了。

    然而,例如ES6 Polyfill: https://github.com/ModuleLoader/es6-module-loader 似乎不允许从ES6加载CommonJS/AMD模块,但只有基于其构建的解决方案(如SystemJS)才允许。

    所以问题是:这是真的吗,官方ES6标准说应该支持CommonJS/AMD(通过显示为具有默认导出)?

    如果是这样的话,您是否参考了ESCMA规范?那么,为什么它不是polyfill本身的一个特性,而不是建立在其之上的解决方案呢?

    1 回复  |  直到 9 年前
        1
  •  4
  •   Jecimi    9 年前

    到目前为止,我已经理解了,但我可能错了,所以欢迎确认/纠正。

    • ECMA脚本6 没有 指定与AMD、CommonJS或任何其他模块格式的兼容性。它只允许规范中定义的ECMAScript 6模块。

    • 然而 从…起 this source :

    模块加载器:不是ES2015的一部分。这是ECMAScript 2015规范中定义的实现。最终的标准将在WHATWG的装载机规范中,但这目前正在进行中。

    Module Loader规范将允许定义您自己的自定义模块加载器。因此,可以通过编写自己的加载程序来导入AMD、CommonJS等,该加载程序将描述如何加载这样的模块。但它也允许加载例如咖啡脚本或任何其他资源,只要我们的自定义模块加载程序描述了如何解释该资源。