2016-06-28 78 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; 
    } 
})