- splitChunks
webpack splitChunks
- minSize: 只有到目标文件超过这个minSize时才会分包。
- cacheGroups: 可以对某个第三方包进行单独分离出来
例如:
splitChunks: {
minSize: 300 * 1024,
chunks: 'all',
name: 'aaa',
cacheGroups: {
jquery: {
name: 'jquery',
test: /jquery\.js/,
chunks: 'all'
}
}
}
-
tree-shaking 参考链接
什么是tree-shaking,在production模式自动开启。
例如:// tools.js function add(a, b) { return a + b; } funtion mul(a, b) { return a * b; } export { add, mul }
// App.jsx import { add } from './tools' add(1, 2)
在tools.js定了两个工具函数,但是在业务代码里只用到了add,那么webpack当在生产模式下自动将mul函数给移除,以减小tools.js文件的大小,就想摇晃树一样,把死掉的叶子扔掉,这就是tree-shaking。
tree-shaking的使用条件:es6 Module才能让tree-shaking生效,也就是export、import方式。commonjs方式就不行。
为什么??
ES Module 和 Commonjs的区别:
- ES Module 静态引入,编译时引入
- Commonjs动态引入,执行时引入
- 只有ES Module才能静态分析,实现tree-shaking