Javascript 为什么在ES6模块上使用模块绑定器?

Javascript 为什么在ES6模块上使用模块绑定器?,javascript,module,webpack,amd,commonjs,Javascript,Module,Webpack,Amd,Commonjs,这个问题很简单,也许很傻。 我们不是已经在ES6中有了模块吗?但我们再次使用模块绑定器。这都是因为支持问题吗?他们给了我们更多的选择还是什么? 谢谢。当前的JS运行时不支持ES6模块。这似乎令人困惑,因为它们在规范中,但它们只是被定义而尚未实现(Edge是唯一支持的浏览器,) 因为我们有这种奇特的新语法,但不支持浏览器(或节点),所以现在需要一些工具来填充它。进入像webpack这样的捆绑包商,他们了解ES6模块,并提供自己的系统实现及其导入功能 这与lodash(和下划线)在大多数浏览器实现函

这个问题很简单,也许很傻。
我们不是已经在ES6中有了模块吗?但我们再次使用模块绑定器。这都是因为支持问题吗?他们给了我们更多的选择还是什么?

谢谢。

当前的JS运行时不支持ES6模块。这似乎令人困惑,因为它们在规范中,但它们只是被定义而尚未实现(Edge是唯一支持的浏览器,)

因为我们有这种奇特的新语法,但不支持浏览器(或节点),所以现在需要一些工具来填充它。进入像webpack这样的捆绑包商,他们了解ES6模块,并提供自己的
系统
实现及其导入功能


这与lodash(和下划线)在大多数浏览器实现函数数组方法之前对函数数组方法所做的没有什么不同,只是在多边形填充发生的时间上有所不同。因为模块加载必须在脚本运行之前进行,所以绑定器必须在脚本到达客户端之前运行。

所以我们有Babel it不传输模型代码?因此,我们可以使用这种语法。Babel可以保持ES6模块不变,或者将它们转换为CommonJS requires或AMD模块,具体取决于您的
。babelrc
。Webpack和朋友们会很高兴地包装这些模块格式中的任何一种(或它们的混合),并为您解决问题。这除了结合HTTP请求的好处和捆绑的常见原因之外。