为什么要使用模块捆绑器而不是ES6模块?

时间:2016-10-28 15:45:32

标签: javascript module webpack amd commonjs

简单而且可能是愚蠢的问题。
是不是我们已经在ES6中安装了模块?但我们再次使用模块捆绑包。这是因为支持问题吗?他们给了我们更多的选择或什么?
感谢。

1 个答案:

答案 0 :(得分:0)

当前的JS运行时不支持ES6模块。这看起来很混乱,因为它们在规范中,但它们只是已经定义但尚未实现(Edge是唯一支持任何支持的浏览器,per MDN)。

因为我们有这种花哨的新语法但没有浏览器(或节点)支持,所以现在需要一些工具来填充它。输入像webpack这样的捆绑包,他们了解ES6模块并提供自己的Public Class Band Public Property BandID() As Integer Public Property BandName() As String Public Property MusicStyleID() As Integer Public Property MusicStyleRef() As MusicStyle End Class Public Class MusicStyle Public Property MusicStyleID() As Integer Public Property MusicStyleName() As String End Class 实现及其导入功能。

这与lodash(和下划线)对功能数组方法的作用没有什么不同,在大多数浏览器实现之前,与polyfill发生时有所区别。因为模块加载必须在脚本运行之前进行,所以捆绑器必须在脚本到达客户端之前运行。