【问题标题】:Understanding ES6 modules with regards to Angular2 web application了解关于 Angular2 Web 应用程序的 ES6 模块
【发布时间】:2017-04-28 16:58:25
【问题描述】:

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

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

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

请告诉我第 1 点和第 2 点是否正确。

  1. 我观察到大部分时间 tsconfig.json 中的“target”属性为“es5”,对于 Angular 2 Web 应用程序,是否应该始终设置为“es5”,或者可以根据我们是否修改它正在使用 systemJS 或 webpack

【问题讨论】:

    标签: angular typescript ecmascript-6 es6-modules


    【解决方案1】:
    1. 差不多
    2. 确实如此,尽管模块系统之间存在差异。
      幸运的是,typescript 允许您以单一格式编写,并会根据您传递给它的 module 编译器选项将其编译到正确的系统。
    3. 我不确定您从哪里得到的统计信息,您得出的结论是 target 通常是 es5,这取决于应用程序打算在哪里运行以及您计划使用哪些 es6 功能。
      例如Promiseconst/let、箭头函数和许多其他es6 功能已在大多数最新浏览器中实现。
      您可以使用兼容性表(您可以在 MDN 中为每个功能找到)检查您计划使用的每个功能,并自行确定是否可以定位 es6
      如果您不能但仍想这样做,那么您可以尝试使用babel

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-14
    • 1970-01-01
    • 2016-02-17
    • 1970-01-01
    相关资源
    最近更新 更多