1. 可用于生产环境
优化babel-loader
例:
{
test:/\.js$/,
use:['babel-loader?cacheDirectiory'],//开启缓存
inclued:path.resolve(__dirname,'src'),//明确范围
// //排除范围,include 和exclude 两者选一个即可
// exclued:path.resolve(__dirname,'node_modules')
}
- 开启缓存
- 明确范围
IgnorePlugin 避免引入无用模块
noParse 避免重复打包
比如 react vue 已经模块化处理过了 就不需要再打包了
IgnorePlugin vs noParse
- IgnorePlugin 直接不引入,代码中没有
- noParse引入,但不打包
happyPack 多进程打包
ParallelUglifyPlugin多进程压缩JS
2.不用于生产环境
- 自动刷新
- 热更新
- DllPlugin 动态连接库插件 前端框架(vue/React)体积大,构建慢,稳定,所以需要缓存框架
3.优化产出代码
- 小图片base64编码
- bundle加hash
- 懒加载
- 提取公共代码
- 使用CDN加速
- IgnorePlugin
- 使用production
- ScopeHosting