2016-10-28 80 views

回答

0

當前JS運行時不支持ES6模塊。這看起來很混亂,因爲它們在規範中,但是它們只是被定義並且尚未實現(Edge是唯一支持的瀏覽器,per MDN)。

因爲我們有這個花哨的新語法,但沒有瀏覽器(或節點)的支持,一些工具需要填充工具,就目前而言。進入像webpack這樣的打包者,他們瞭解ES6模塊,並提供自己的System及其導入功能的實現。

這是不是不像什麼lodash(和下劃線)沒有爲功能陣列的方法,之前那些被大多數瀏覽器中實現,以當填充工具發生在差異。因爲模塊加載必須在腳本運行之前發生,所以捆綁器必須在腳本到達客戶端之前運行。

+0

那麼我們有Babel它不會傳輸模型代碼?以便我們能夠使用該語法。 –

+0

根據你的'.babelrc',Babel可以保留ES6模塊,或將它們轉換成CommonJS需要的模塊或AMD模塊。 Webpack和朋友們會很樂意包裝所有這些模塊格式(或者它們的混合)並且爲你平滑一些事情。這與將HTTP請求與捆綁的常見原因相結合的好處除外。 – ssube