手机版

网络包热更新优化详解

时间:2021-08-30 来源:互联网 编辑:宝哥软件园 浏览:

前言

随着项目中的界面越来越多,webpack的热更新也越来越慢,有时会达到长达5、7秒,对开发效率影响很大。

解析过程

所以今天,我分析了热更新慢的原因。步骤如下

首先,在包中添加启动命令

-progress-watch-colors-profile首先解释这些参数的含义

-进度施工进度-观看实时监控-过程中的步骤-剖面图编制费时。重新启动项目后,可以开始观察耗时。修改文件后,检查控制台,如下所示

图中红色部分是耗时最长的地方。好吧,我找到了那个需要很长时间的地方。经过百度搜索,发现也有一个和我很相似的问题。他的理由是使用了uglifyJsPlugin插件。考虑到这一点,这个插件也用在我的项目的webpack配置中,所以我将这个插件移到生产环境中使用。修改后,我重新启动了项目。修改文件后,我检查了控制台,如下所示

效果惊人,总耗时一直在1,2s以内,效率提升了不少!如果你有这样的烦恼,也可以试试

另一个解决方案。

这个方案的思路是,在开发环境中,每个人负责一部分模块或者组件,所以hot update只能编译自己当前需要的页面,并不需要编译所有的页面。创建一个selfConfig.js设置要保存的页面,然后在webpack配置中只配置需要的页面来编译热更新。在开发环境中加速编译。

//self config . js module . exports=[' imscene ',' mLogin '];//webpack.base.conf.js //部分密钥代码const selfconfig=require('。/self config ');for(让moduleName of modules){ if(self config . length===0){ devEntries[moduleName]=path . join(resolve(' src '),' modules ',moduleName,' main . js ');} else { if(self config . includes(moduleName)){ devEntries[moduleName]=path . join(resolve(' src '),' modules ',moduleName,' main . js ');} } buildEntries[moduleName]=path . join(resolve(' src '),' modules ',ModuleName,' main . js ');}上述案例设置完成后,只会热更新两页。但是这个方案的缺点是其他页面的本地环境不会用白屏打开(因为根本没有编译),所以这个方案还是根据适合自己的场景来使用。

注意:每次修改selfConfig.js,都需要重启webpack服务。

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

版权声明:网络包热更新优化详解是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。

相关文章推荐