Vue中webpack常规打包优化的示例分析

  介绍

这篇文章主要介绍了Vue中webpack常规打包优化的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

<强>分析打包文件

要优化,先分析。我们先要知道到底是哪里拖慢我们的打包速度呢?

<>强打包后生成文件分析

可以利用<代码> webpack-bundle-analyzer>

安装

<代码> npm我webpack-bundle-analyzer - d

使用

修改<代码> webpack.prod.conf。js代码文件

const  BundleAnalyzerPlugin =,需要(& # 39;webpack-bundle-analyzer& # 39;) .BundleAnalyzerPlugin//,构建完成后,浏览器会自动打开localhost: 8080   webpackConfig.plugins.push (   ,new  BundleAnalyzerPlugin ({   8080年,analyzerPort:大敌;   generateStatsFile才能:假   ,})   )

 Vue中webpack常规打包优化的示例分析

通过图片可以看到打包后文件的具体信息

打包进度条显示,可以查看到打包进度百分比

<代码> simple-progress-webpack-plugin>

安装

npm 小姐:simple-progress-webpack-plugin  - d

使用

修改<代码> webpack.prod.conf。js代码文件

const  SimpleProgressWebpackPlugin =,需要(,& # 39;simple-progress-webpack-plugin& # 39;,)   …   ,插件:[   new 才能;SimpleProgressWebpackPlugin ()   ,)   …

效果如下:

,  Vue中webpack常规打包优化的示例分析

<强>资源与依赖包的控制

通过上面进度可以看的到,打包过程中,卡顿在压缩的地方过长,当项目越来越臃肿的时候,我们要需要对项目静态资源以及依赖包进行整理,

图片过大的可以压缩,这里推荐一个还不错的压缩链接

<李>

项目中没有使用的依赖可以删除,可以按需引用的依赖,按需引用

<李>

项目里面使用ElementUI和Echarts都是全部引用挂在Vue。原型上,现都改为按需引用。

<>强减少文件搜索范围

设置<代码>的决心。别名>

解决:,{   ,别名:{   & # 39;才能@ # 39;:,解决(& # 39;src # 39;)   ,}   }

<>强合理配置扩展扩展名

<代码>的决心。扩展> 解决:,{   ,扩展:[& # 39;.vue& # 39;,, & # 39; . js # 39;】   }

装载机预处理文件增加包括匹配特定条件

预处理各种文件时指定匹配目录后,webpack解析文件时就不会循环查找其他目录,加快解析速度。

<强> happypack多线程执行

webpack执行预处理文件时单线程的,我们可以使用happypack来多线程处理文件。

安装

<代码> npm我happypack - d

使用

修改<代码> webpack.base。js代码文件

const  happyThreadPool =, HappyPack.ThreadPool({,大小:os.cpus () .length });   模块:{   ,规则:[   {才能   ,,,测试:/\ . js/美元,   ,,装载机:& # 39;happypack/装载机? id=巴贝尔# 39;,,//,原始装载机替换成“happypack/加载程序”   ,,,包括:[解决(& # 39;src # 39;))   ,,}   ,)   },   插件:,   ,new  HappyPack ({//才能,id标识,需要处理的加载程序   ,,id: & # 39;巴别塔# 39;//才能,装载机配置和原始配置一样   加载器才能:,   ,,{   ,,,装载机:,& # 39;babel-loader& # 39;   ,,,选择:,{   ,,,,预设:,(& # 39;es2015& # 39;),   ,,,,cacheDirectory:真实   ,,,}   ,,}   ,,,   threadPool才能:happyThreadPool   ,})   )

<强> babel-plugin-dynamic-import-node异步加载

<代码> babel-plugin-dynamic-import-node>

安装

<代码> npm我babel-plugin-dynamic-import-node - d

Vue中webpack常规打包优化的示例分析