优化Vue CLI项目的Webpack 2打包配置
在Vue CLI项目中,使用Webpack 2进行打包优化可以显著提高应用性能并缩短构建时间。以下是一些优化建议:
- 缩小文件搜索范围:Webpack的
resolve.modules
配置指定了模块库(如node_modules
)的位置。默认情况下,Webpack会从当前目录向上递归查找node_modules
。为了提高效率,可以直接指定node_modules
的完整路径。例如:
module.exports = {
resolve: {
modules: [ resolve('src'), resolve('node_modules') ],
alias: {
'vue$': 'vue/dist/vue.common.js',
'src': resolve('src'),
'assets': resolve('src/assets'),
'components': resolve('src/components'),
'store': resolve('src/store')
}
},
// ...
};
-
合理配置
test
、include
和exclude
:这些选项控制哪些文件需要处理。test
是文件匹配的正则表达式,include
是需要处理的文件或目录,exclude
是需要排除的文件或目录。正确设置这些选项可提高构建速度。 -
使用并行代码压缩工具:替换默认的单线程
UglifyJS
插件为webpack-parallel-uglify-plugin
,支持并行压缩,提升构建速度。配置示例如下:
const ParallelUglifyPlugin = require('webpack-parallel-uglify-plugin');
plugins: [
// ...
new ParallelUglifyPlugin({
cacheDir: '.cache/',
uglifyJS: {
output: { comments: false },
compress: { warnings: false }
}
})
]
- 复制静态文件:使用
copy-webpack-plugin
将静态资源复制到目标目录。例如:
var CopyWebpackPlugin = require('copy-webpack-plugin');
plugins: [
// ...
new CopyWebpackPlugin([
{ from: path.resolve(__dirname, '../static'), to: config.build.assetsSubDirectory, ignore: ['.*'] }
])
]
-
利用DLLPlugin和DllReferencePlugin:这两个插件预打包常见的第三方库,避免在主应用构建时重复处理这些库,加快构建速度。DLL包括一个manifest文件记录库的依赖关系,方便主应用引用。
-
其他优化策略:
- 使用
HappyPack
或thread-loader
并行处理CSS、JavaScript和图片等资源。 - 利用
CommonsChunkPlugin
提取共用模块,减少首屏加载时间。 - 设置
externals
避免打包通过CDN引入的库。 - 使用
mini-css-extract-plugin
分离CSS,实现异步加载。 - 开启Tree Shaking,使用
sideEffects
属性或no-unused-modules
避免引入未使用的代码。
这些策略可以根据项目需求调整,以实现最佳性能和构建效率。
74.07KB
文件大小:
评论区