2016-02-12 66 views
8

我正在開發多個插件到加載這些插件作爲AMD模塊(帶有requirejs)的系統。插件被編寫爲ES6模塊並且與webpack(output.libraryTarget ='amd')打包在一起。一切工作如預期到目前爲止。使用webpack和CommonsChunkPlugin生成AMD模塊

但插件共享相當多的通用代碼捆綁到每個條目。我嘗試使用CommonsChunkPlugin webpack插件,但初始塊包含的代碼不是AMD模塊。然而,在普通卡盤上繼續的其他入口點仍然正確生成。另外documentation表示,在一個頁面上有多個初始塊(使用JSONp運行時)是不好的 - 另一個插件作者可能會使用相同的方法。

有沒有辦法以AMD兼容的方式優化這個用例? 在我看來,CommonsChunkPlugin中的一個錯誤是,初始條目不是AMD(但它的代碼仍然不安全,無法在plugin env中加載)......有沒有我缺少的配置?

+1

同樣的問題。似乎無論出於何種原因而生成一個amd庫都是不兼容的。 –

回答

1

我不太確定是否正確理解你。但是,如果你想建立自己的包作爲AMD模塊,比你必須配置它作爲一個library:這裏

... 
output: { 
    ... 
    library: true, 
    libraryTarget: 'umd' 
}, 
+0

因此,您可能需要根據您的導出方式配置libraryTarget參數:http://webpack.github.io/docs/configuration.html#output-librarytarget – Kreozot

+0

工作正常。但是我想使用[CommonsChunkPlugin](https://webpack.github.io/docs/list-of-plugins.html#commonschunkplugin),並且常見塊的輸出不是AMD。 – ahz

+0

爲什麼不使用多個入口點? – Kreozot

相關問題