从这篇文章: 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本身的特征而不是建立在它之上的解决方案?
答案 0 :(得分:3)
到目前为止,这是我所理解的,但我可能错了,所以欢迎确认/纠正。
ECMAScript 6 不指定与AMD,CommonJS或任何其他模块格式的任何兼容性。它只允许使用规范中定义的ECMAScript 6模块。
但来自this source:
模块加载器:不属于ES2015。这保留在ECMAScript 2015规范中的实现定义中。最终标准将采用WHATWG的Loader规范,但目前正在进行中。
模块加载器规范将允许定义您自己的自定义模块加载器。因此,可以通过编写自己的加载器来导入AMD,CommonJS等......这将描述如何加载这样的模块。但只要我们的自定义模块加载器描述了如何解释此资源,它也将允许加载例如咖啡脚本或任何其他资源。