[英]Webpack lazily-loaded vendor bundle?
我正在尝试将两个显式的vendor-trunk示例与webpack中的代码拆分相结合。 但无法使其发挥作用。
我有两个页面(不是真正的页面,它是使用react和react-router的SPA):
vendor.js
vendor.js
和d3.js
目标是:访问/时,只加载app.js
和vendor.js
。 当用户导航到/ d3时,根据需要加载d3.js
我是这样尝试的:
entry: {
vendor: [
'react',
'react-dom',
'react-router',
...
],
d3: [
'd3',
],
app: [
'./src/js/index',
],
},
plugins: [
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
minChunks: Infinity,
}),
new webpack.optimize.CommonsChunkPlugin({
name: 'd3',
minChunks: Infinity,
async: true,
}),
...
],
export default (
<Router history={createBrowserHistory()}>
...
<Route path="d3" getComponent={(location, callback) => {
require.ensure([], (require) => {
callback(null, require('./pages/D3').default);
});
}} />
...
</Router>
);
此配置无法按预期工作,因为生成了d3.js
包但其他包完全忽略。 并且d3.js
也在块1.1.js
重复。 那我怎么能让它发挥作用呢? 我需要这个配置,因为d3太大并且减慢了主页上的初始加载速度。 此外,我需要对vendor.js
和d3.js
进行长期缓存,因此必须将它们拆分为供应商块。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.