过滤掉无用的JS代码和CSS代码, 我们称之为Tree-Shaking.
1、JS-Tree-Shaking
① 开发环境
webpack.config.js配置, 告诉webpack只打包导入模块中用到的内容:
optimization: {
usedExports: true,
},
package.json配置, 告诉webpack哪些文件不做Tree-Shaking:
"sideEffects": ["*.css", "*.less", "*.scss"],
② 生产环境
无需进行任何配置, webpack默认已经实现了Tree-Shaking
③ 注意点:
- 只有ES Modle导入才支持Tree-Shaking
- 任何导入的文件都会受到 tree shaking 的影响。
2、CSS-Tree-Shaking
https://github.com/webpack-contrib/purifycss-webpack
① 安装相关插件
npm i -D purifycss-webpack purify-css glob-all
② 配置插件
const glob = require('glob-all');
const PurifyCSSPlugin = require('purifycss-webpack');
new PurifyCSSPlugin({
// 告诉PurifyCSSPlugin需要过滤哪些文件
paths: glob.sync([
path.join(__dirname, 'src/*.html'),
path.join(__dirname, 'src/js/*.js'),
]),
}),