webpack vue/cli-service 打包优化总结
package.json
{
"vue": "^2.6.7",
"@vue/cli-service": "^3.12.1",
}
如果打包慢可采用多线程打包(thread-loader)
本来项目是约200s的多线程打包最快能到30s!
配置如下
config.module
.rule('js')
.use('thread-loader')
.loader('thread-loader')
.tap(options => {
// 设置 thread-loader 的选项
options = {
workers: 3
}
return options
})
打包体积减少可通过压缩图片,提取公用代码方式,和删除项目用已经不用的插件来
webpack-bundle-analyzer 可帮助你分析包的大小及chunk的分布情况
压缩图片配置
config.module
.rule('images')
.test(/\.(png|jpe?g|gif|svg)(\?.*)?$/)
.use('image-webpack-loader')
.loader('image-webpack-loader')
.options({
bypassOnDebug: true,
disable: true // 开发环境下禁用图片压缩
})
提取公用代码方式
libs: {
name: 'chunk-libs',
test: /[\\/]node_modules[\\/]/,
priority: 10,
chunks: 'initial'
},
加快二次构建速度
yarn add hard-source-webpack-plugin -S -dev
const HardSourceWebpackPlugin = require('hard-source-webpack-plugin')
configureWebpack: {
plugins: [
new HardSourceWebpackPlugin(),
]
}