2016-06-28 79 views
1

在Webpack中,我將如何去創建一個只包含我指定內容的正常(非入口)異步塊。Webpack - 手動創建異步公用塊

例如,假設我有moduleAmoduleB。兩者都通過System.import按需加載。 moduleAmoduleB都使用/shared目錄中的各種內容。我將如何去創建一個包含(僅)所有共享內容的異步塊? (在現實生活中有好多不僅僅是moduleAmoduleBshared分享的內容更多)

最接近the docs似乎表明是chunks陣列,但是這似乎是塊來分析常見的內容,這將是提取到公共塊中。

此問題是this answer(由Webpack創作者編寫的)的擴展。

我只是想知道如何(如果可能的話),你可以接管更大,更細粒度的控制什麼進入您共同塊,通過手動善有善報他們指定

+0

DllPlugin聽起來像你想要的_bit_,除了我不確定異步加載方面。你有沒有看過那個?如果沒有,我有幾個鏈接到有關DllPlugin的文章,網址是https://github.com/markerikson/react-redux-links/blob/master/webpack-advanced-techniques.md。 – markerikson

回答

2

此插件將shared中從至少兩個按需加載的塊與公用父項一起使用的所有模塊移動到單獨的異步公共塊中。

如果您知道公共父組塊(即路由器),則可以選擇傳遞參數name

new CommonsChunkPlugin({ 
    async: true, 
    children: true, 
    minChunks: function(module, count) { 
    return module.resource && 
     module.resource.indexOf("/path/to/shared/") === 0 && 
     count >= 2; 
    } 
})