是否仍然需要具有使用JavaScript ES6模块和类的应用程序的模块加载器?

时间:2016-07-06 15:02:20

标签: javascript module ecmascript-6 loader es6-module-loader

如果使用ES6模块和类对应用程序进行编码,是否需要使用模块加载器框架,或者是使用构建工具将所有代码连接到文件(或文件)并包含的最佳实践那些使用普通脚本标签的人?

1 个答案:

答案 0 :(得分:1)

是。有人,沿线的某个地方必须加载模块。

我认为你提前将编译模块与单独加载它们混为一谈。 Webpack是一个模块加载器,它输出单个文件供浏览器稍后使用,而System API和requirejs等加载一些单独的文件。

双方都有性能因素,特别是更长的构建时间(预编译时)和更长的加载时间(多个文件)。

Webpack,Browserify和大多数其他模块加载器(除了System API之外)允许您为某些文件类型定义一些加载器并自动编译您的(S)CSS或模板,以及运行其他工具来uglify或混淆代码。 ES6 System API不提供这些功能,但它是比大多数功能更强大的运行时加载程序。

这归结为两个权衡:

  1. 支持非JS模块(样式,模板)与构建时间
  2. 单个请求和更长的构建与许多请求和短/无构建
  3. 为您的用户(高带宽与移动设备),环境(如果您有二十几个CI代理,谁关心构建需要额外的3s?)和堆栈(如果您有大量模板文件,编译它们AOT可能很重要。)