ES6模块"导入"官方兼容CommonJS和AMD?

时间:2015-12-29 20:13:33

标签: javascript ecmascript-6 amd commonjs es6-module-loader

从这篇文章: https://hacks.mozilla.org/2015/08/es6-in-depth-modules/

写的是

  

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

更准确地说是

  

所有CommonJS和AMD模块都显示给ES6,具有默认导出

如果确实如此,我们所需要的只是ES6 polyfill,我们不必再使用其他任何东西。

但是对于例如这个ES6 Polyfill:https://github.com/ModuleLoader/es6-module-loader似乎不允许从ES6加载CommonJS / AMD模块,但只有像SystemJS那样构建在它之上的解决方案允许它。

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

如果是这种情况,您是否参考了ESCMA规范?然后为什么它不是polyfill本身的特征而不是建立在它之上的解决方案?

1 个答案:

答案 0 :(得分:3)

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

  • ECMAScript 6 指定与AMD,CommonJS或任何其他模块格式的任何兼容性。它只允许使用规范中定义的ECMAScript 6模块。

  • 来自this source

  

模块加载器:不属于ES2015。这保留在ECMAScript 2015规范中的实现定义中。最终标准将采用WHATWG的Loader规范,但目前正在进行中。

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