vue-cli 中 webpack.prod.conf.js
new webpack.optimize.CommonsChunkPlugin({
name: 'app',
async: 'vendor-async',
children: true,
minChunks: 3
}),
我清楚这是在使用代码拆分功能时,将一个 chunk 的多个子 chunk 的公共的依赖抽离成异步加载的公共代码块,但我不确定name: 'app'
和 async: 'vendor-async'
配置具体是什么作用?与我不设置name
选项,设置async: true
有什么区别?
看文档 https://doc.webpack-china.org...
将名为'app'的chunk的子模块中,如果有3个或3个以上的模块都用了某一个模块X,那么将X作为common-chunk提出来,找出n个X合成一个包。在这里,这个包是异步的,叫'vendor-async'
1.减少因业务代码变动导致的频繁更新cdn
2.在代码分离的时候,先下载这个公共包,后续其它包的下载就比较小了
举个例子:有四个代码分离的页面分别依赖是,{a,b,c,d} {a,c,e} {a,b,f} {b,c,g}
提取common-chunk =>{a,b,c}
各个页面的依赖就变成 {d},{e},{f},{g}