2016-10-07 37 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", 

}