为什么在 ES6 模块上使用模块打包器?
Why to use module bundlers over ES6 module?
简单但可能很愚蠢的问题。
难道我们在 ES6 中已经有模块了吗?但是我们再次使用模块打包器。难道都是因为配套问题?他们给了我们更多的选择还是什么?
谢谢。
目前的JS运行次不支持ES6模块。这似乎令人困惑,因为它们在规范中,但它们只是被定义而尚未实现(Edge 是唯一具有任何支持的浏览器,per MDN)。
因为我们有这种奇特的新语法但没有浏览器(或节点)支持,所以现在需要一些工具来填充它。输入像 webpack 这样的打包器,它们了解 ES6 模块并提供自己的 System
实现及其导入功能。
这与 lodash(和下划线)在大多数浏览器实现之前对函数式数组方法所做的事情没有什么不同,区别在于 polyfill 发生的时间。因为模块加载必须在脚本 运行 之前发生,所以打包器必须在脚本到达客户端之前 运行。
简单但可能很愚蠢的问题。
难道我们在 ES6 中已经有模块了吗?但是我们再次使用模块打包器。难道都是因为配套问题?他们给了我们更多的选择还是什么?
谢谢。
目前的JS运行次不支持ES6模块。这似乎令人困惑,因为它们在规范中,但它们只是被定义而尚未实现(Edge 是唯一具有任何支持的浏览器,per MDN)。
因为我们有这种奇特的新语法但没有浏览器(或节点)支持,所以现在需要一些工具来填充它。输入像 webpack 这样的打包器,它们了解 ES6 模块并提供自己的 System
实现及其导入功能。
这与 lodash(和下划线)在大多数浏览器实现之前对函数式数组方法所做的事情没有什么不同,区别在于 polyfill 发生的时间。因为模块加载必须在脚本 运行 之前发生,所以打包器必须在脚本到达客户端之前 运行。