2016-10-07 40 views
4

角CLI使用ES6模块作为打字原稿的输出格式: 在tsconfig.json:angular-cli如何与ES6模块一起使用?

{ 
    "compilerOptions": { 
     "modules": "es6", 
     "target": "es5", 
     ... 

如何通过的WebPack以后处理,以使它在ES5工作?

如果我理解正确,许多项目使用babel来获得es6模块的工作,但是我还没有在angular-cli中找到对babel的任何引用。

我想从一开始就建立一个webpack项目,因为它证明angular-cli使用的webpack配置对于我们的项目来说不够好/足够灵活。

当我尝试使用es6模块时,最终导致我的“捆绑”js文件中出现未处理的“导入”语句,所以显然我做错了什么。

回答

2

角CLI使用支持ESM的webpack 2(es6模块) 因此,当typescript被编译时,它会编译为es5,但保留所有导入语句s作为es6风格的模块。

然后webpack 2可以使用静态分析和树形抖动来优化es6模块以移除未使用的代码段和未使用的模块。

所以你可能做错了什么是使用不支持es6模块的webpack 1。

+0

作为一个方面说明:Treeshaking不起作用。详情在这里:https://github.com/webpack/webpack/issues/2899 – schlingel

0

好了,我发现

  • 角CLI使用的WebPack 2 BETA
  • 的WebPack 2测试已经为ES6模块

本地支持参见What's new in webpack 2

0

只需将tsconfig.json文件中的目标从es5更改为es6,其他所有东西,例如module和lib已经支持es6。

enter image description here {

"target": "es6", 

}