如果我使用ES6模块,是否还需要模块加载器?

atc*_*way 7 javascript ecmascript-6 es6-module-loader es6-modules

不幸的是,我对JavaScript模块加载器的了解仍在增长,我正在努力了解它们与新模块的关系ES6 Modules.我可以告诉我使用类似CommonJSRequireJS使用ES5兼容的模块加载器JavaScript确实需要使用异步模块加载器来提高性能并仅在需要时使用相应的模块加载器语法加载.

然而,在查看ES6 模块文档和阅读其他信息时,在我看来,通过importexport关键字本机支持模块加载.如果是这种情况我是否正确ES6 JS modules本机支持异步模块加载,因此我不需要使用像CommonJS或的其他工具RequireJS

Ber*_*rgi 7

在我看来,通过导入和导出关键字本机支持模块加载.

不完全是.的importexport声明只定义的依赖关系和各模块的接口.它们允许静态提取命名所需模块的字符串,没有别的.

如果是这种情况,我是否不需要使用CommonJS或RequireJS等其他工具?

不需要.您仍然需要为ES6模块使用加载程序,它可以解析名称或路径或从imports到实际模块文件的任何内容,并使用依赖于实现的方法加载它们.

有许多工具或工具链可用,不同解决方案的示例如下

  • webpack:将所有内容捆绑成一个大脚本
  • System.js:动态和异步加载单个模块(类似于require.js所做的)
  • native:node.js和web浏览器仍在研究如何在没有附加库的情况下支持模块加载
  • babel transpilation:您可以将ES6模块转换为AMD或CommonJS格式,并使用require.js等已知工具