了解关于Angular2 Web应用程序的ES6模块

时间:2016-12-13 15:08:14

标签: angular typescript ecmascript-6 es6-modules

以下几点解释了我对ES6模块关于Angular2 Web应用程序开发的理解和问题。

  1. 据我了解,ES6中引入了模块(导出/导入),并且当前浏览器支持导出/导入语法, 但它们不支持模块加载。

  2. 因为当前的浏览器不支持模块加载,所以我们要么使用像systemJS这样的模块加载器来处理加载 模块通过进行某种AJAX调用,或者我们必须使用像webpack这样的模块捆绑器,它将所有模块捆绑到一个JS文件中。

  3. 请让我知道第1点和第2点是否正确。

    1. 我观察到大部分时间"目标" tsconfig.json中的属性是" es5" ,是否应始终设置为" es5"关于Angular 2 Web应用程序,还是可以根据我们是使用systemJS还是webpack
    2. 进行修改

1 个答案:

答案 0 :(得分:0)

  1. 非常
  2. 是的,尽管模块系统之间存在差异 幸运的是,typescript允许您以单一格式编写,并根据您传递的module编译器选项将其编译到正确的系统。
  3. 我不确定您的统计信息在哪里,您认为target通常为es5,这取决于应用程序打算运行的位置以及您计划使用的es6功能使用。
    例如,Promiseconst / let,箭头函数和许多其他es6功能已在大多数最新浏览器中实现。
    您可以使用兼容性表(您可以在MDN中找到每个功能)查看您正在计划的每个功能,如果您可以定位es6,则可以自行查找。
    如果你不能但仍然愿意,那么你可以尝试使用babel