一、tree shaking(摇树优化)
https://webpack.js.org/guides/tree-shaking/#root
概念:1个模块可能有多个⽅法,只要其中的某个方法使⽤到了,则整个⽂件都会被打到 bundle 里面去,tree shaking 就是只把⽤到的方法打入 bundle ,没⽤到的方法会在uglify阶段被擦除掉。
使⽤:
webpack默认⽀持,在.babelrc里设置modules: false即可
production mode的情况下默认开启
要求:必须是 ES6 的语法,CJS 的方式不支持
//dev环境下
mode: 'development',
optimization: {
// 打包结果只打包引用的代码
usedExports: true,
// 尽可能合并每一个模块到一个函数中
concatenateModules: true,
// 压缩打包的结果
minimize: true
},
Tree-shaking 实现的前提是 ES Modules,也就是说:最终交给 Webpack 打包的代码,必须是使用 ES Modules 的方式来组织的模块化。