ES6 module's “import” officially compatible with CommonJS and AMD?

£可爱£侵袭症+ 提交于 2020-01-13 12:03:06

问题


From this article : https://hacks.mozilla.org/2015/08/es6-in-depth-modules/

It is written that

The new standard is designed to interoperate with existing CommonJS and AMD modules.

And more precisely

All CommonJS and AMD modules are presented to ES6 as having a default export

If it is really the case all we'd need is a ES6 polyfill and we wouldn't have to do use anything else.

Yet for eg this ES6 Polyfill :https://github.com/ModuleLoader/es6-module-loader doesn't seem to allow loading CommonJS/AMD modules from ES6 but only solutions built on top of it like SystemJS allow it.

So the question is : Is this true that the official ES6 standard says CommonJS/AMD should be supported (by being presented as having a default export) ?

If it is the case, do you have a reference to the ESCMA specification that says so ? and then why is it not a feature of the polyfill itself rather than solutions built on top of it ?


回答1:


So far here is what I've understood, but I may be wrong so confirmation/rectifications are welcomed.

  • ECMAScript 6 does not specifies any compatibility with AMD, CommonJS or any other module format. It only allows for ECMAScript 6 Module as defined in the spec.

  • However from this source :

Module Loaders : Not part of ES2015. This is left as implementation-defined within the ECMAScript 2015 specification. The eventual standard will be in WHATWG's Loader specification, but that is currently a work in progress.

Module Loader spec will allow to define your own custom module loader. Thus it will be possible to import AMD, CommonJS, etc... by writing your own loader that will describe how to load such a module. But it will also allow to load for eg coffee script or any other resource as long as our custom module loader describes how to interpret this resource.



来源:https://stackoverflow.com/questions/34518339/es6-modules-import-officially-compatible-with-commonjs-and-amd

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!