详解关于webpack多入口热加载很慢的原因


Posted in Javascript onApril 24, 2019

之前为公司搭建了套webpack多页面应用脚手架,起初用得挺爽,资源整合打包,组件化开发,各种组件复用,需要什么就拿什么,后来入口有50个页面了,慢慢的发现了每次按保存后的热加载等待时间越来越长,需要等待10几秒,实在太影响开发效率,于是我查找原因。

观察发现,每次到热加载时会在emitting HtmlWebpackPlugin这停留很久。

详解关于webpack多入口热加载很慢的原因

于是我想知道它到底停留了多长时间呢?

在package.json内加入--profile,它会告诉你编译过程中哪些步骤耗时最长。

详解关于webpack多入口热加载很慢的原因

停止npm,重新运行webpack-dev-server,修改下文件按保存,观察控制台,发现总花费时长为15035毫秒,在emitting就花费了13239毫秒,这emitting应该就是指上面的图片的emitting HtmlWebpackPlugin了,看来我们解决HtmlWebpackPlugin,热加载速度就能恢复正常了。

详解关于webpack多入口热加载很慢的原因

HtmlWebpackPlugin就是我们入口对应的的html页面,new的页面越多,热加载速度就会越慢。

详解关于webpack多入口热加载很慢的原因

我尝试注释掉所有html页面,只留下一个案例详情html页面,重新启动webpack-dev-server,修改文件按下保存,发现速度惊人,只用了772毫米,看来问题出在html-webpack-plugin这个插件上。

详解关于webpack多入口热加载很慢的原因

详解关于webpack多入口热加载很慢的原因

难道是我的html-webpack-plugin配置有问题吗,于是我在网上寻找解决办法,做了各种尝试,直到我找到html-webpack-plugin的github上放弃寻找了,原来插件作者有发布几十条lssues(链接https://github.com/jantimon/html-webpack-plugin/issues),其中就包括该插件的多页面性能问题。

详解关于webpack多入口热加载很慢的原因

我尝试点进问题谈论里面看了看,里面的谈论已经不能算是怎样配置html-webpack-plugin插件了,涉及webpack底层的东西,觉得没必要去深究了,也让人不得不思考webpack现在是否适合多页面开发啊。。

总结:

1、HtmlWebpackPlugin除了正在开发的页面,其它注释掉。

2、等待插件作者修复此问题。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 滚轮事件使用说明
Mar 07 Javascript
JavaScript中几种常见排序算法小结
Feb 22 Javascript
JS操作iframe里的dom(实例讲解)
Jan 29 Javascript
jquery中get和post的简单实例
Feb 04 Javascript
js调试工具console.log()方法查看js代码的执行情况
Aug 08 Javascript
js实现遮罩层弹出框的方法
Jan 15 Javascript
无循环 JavaScript(map、reduce、filter和find)
Apr 08 Javascript
bootstrap轮播图示例代码分享
May 17 Javascript
手把手教你使用vue-cli脚手架(图文解析)
Nov 08 Javascript
vue router嵌套路由在history模式下刷新无法渲染页面问题的解决方法
Jan 25 Javascript
vue项目中应用ueditor自定义上传按钮功能
Apr 27 Javascript
js获取 gif 的帧数的代码实例
Sep 10 Javascript
微信小程序实现的一键连接wifi功能示例
Apr 24 #Javascript
vue router 通过路由来实现切换头部标题功能
Apr 24 #Javascript
js实现全选反选不选功能代码详解
Apr 24 #Javascript
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
Apr 24 #Javascript
Vue源码解析之数据响应系统的使用
Apr 24 #Javascript
详解微信小程序文件下载--视频和图片
Apr 24 #Javascript
详解微信小程序之一键复制到剪切板
Apr 24 #Javascript
You might like
细谈php中SQL注入攻击与XSS攻击
2012/06/10 PHP
PHP获取数组最后一个值的2种方法
2015/01/21 PHP
Symfony数据校验方法实例分析
2015/01/26 PHP
php相对当前文件include其它文件的方法
2015/03/13 PHP
微信获取用户地理位置信息的原理与步骤
2015/11/12 PHP
超详细的php用户注册页面填写信息完整实例(附源码)
2015/11/17 PHP
js验证表单第二部分
2006/11/25 Javascript
javascript知识点收藏
2007/02/22 Javascript
jquery获取tr并更改tr内容示例代码
2014/02/13 Javascript
jQuery中index()的用法分析
2014/09/05 Javascript
jQuery中map()方法用法实例
2015/01/06 Javascript
Vue.js事件处理器与表单控件绑定详解
2017/03/20 Javascript
AngularJs定时器$interval 和 $timeout详解
2017/05/25 Javascript
使用async-validator编写Form组件的方法
2018/01/10 Javascript
微信小程序radio组件使用详解
2018/01/31 Javascript
Angularjs Promise实例详解
2018/03/15 Javascript
简单了解JavaScript中常见的反模式
2019/06/21 Javascript
vue中组件通信的八种方式(值得收藏!)
2019/08/09 Javascript
vue路由守卫及路由守卫无限循环问题详析
2019/09/05 Javascript
vue实现手机端省市区区域选择
2019/09/27 Javascript
在vue和element-ui的table中实现分页复选功能
2019/12/04 Javascript
vue 实现click同时传入事件对象和自定义参数
2021/01/29 Vue.js
python 输出一个两行字符的变量
2009/02/05 Python
Python求导数的方法
2015/05/09 Python
Python+微信接口实现运维报警
2016/08/27 Python
python处理xml文件的方法小结
2017/05/02 Python
Python下调用Linux的Shell命令的方法
2018/06/12 Python
Python将多个list合并为1个list的方法
2018/06/27 Python
Python利用神经网络解决非线性回归问题实例详解
2019/07/19 Python
Python 使用 prettytable 库打印表格美化输出功能
2019/12/26 Python
Python pip 常用命令汇总
2020/10/19 Python
CSS3 简写animation
2012/05/10 HTML / CSS
材料加工工程求职信
2014/02/19 职场文书
十二生肖观后感
2015/06/12 职场文书
图书借阅制度范本
2015/08/06 职场文书
java objectUtils 使用可能会出现的问题
2022/02/28 Java/Android