1、构建速度
优化babel-loader
use:['babel-loader?cacheDirectory'] // 开启缓存,未更新的不会重新编译// 明确构建范围include:path.resolve('./src')exclude:
IgnorePlugin:避免引用无用模块
import moment from 'moment'
默认会引入所有语言js 代码过大
new webpack.IgnorePlugin(/\.\/locale/,/moment/)
文件中手动引入语言包
noParse:
避免重复打包,比如xxx.min.js
IgnorePlugin vs noParse
1、文件不引入,手动引入并打包
2、noParse 引入 但是不打包
happyPack 多进程打包
{
test:/.js$\,
use: ['happypack/loader?id=babel'] 替换babel-loader
}
new HappyPack ({
id:'babel',
loaders:['babel-loader']
})
ParallelUglifyPlugin
关于多进程
项目较大 打包较慢 可以开多进程
项目较小 没必要开启多进程
自动刷新
watch:true
watchOptions:{
ignored:/node_modules/,
aggregateTimeout:300,
poll:1000
}
热更新
自动刷新 整个网页速度慢,状态会丢失
热更新 不会
hotmodulereplaceplugin
new HotModuleReplacePlugin
devServer配置hot:true
Dllplugin
