详解关于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 相关文章推荐
js点击出现悬浮窗效果不使用JQuery插件
Jan 20 Javascript
原生javascript实现无间缝滚动示例
Jan 28 Javascript
弹出窗口并且此窗口带有半透明的遮罩层效果
Mar 13 Javascript
jQuery里filter()函数与find()函数用法分析
Jun 24 Javascript
基于JS实现PHP的sprintf函数实例
Nov 14 Javascript
Angular开发者指南之入门介绍
Mar 05 Javascript
使用ef6创建oracle数据库的实体模型遇到的问题及解决方案
Nov 09 Javascript
Vue数据监听方法watch的使用
Mar 28 Javascript
关于js对textarea换行符的处理方法浅析
Aug 03 Javascript
基于js Canvas实现二次贝塞尔曲线
Dec 25 Javascript
微信小程序开发搜索功能实现(前端+后端+数据库)
Mar 04 Javascript
vue 动态给每个页面添加title、关键词和描述的方法
Aug 28 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
input按钮的事件处理大全
2010/12/10 Javascript
javascript得到当前页的来路即前一页地址的方法
2014/02/18 Javascript
JavaScript事件委托的技术原理探讨示例
2014/04/17 Javascript
JavaScript页面模板库handlebars的简单用法
2015/03/02 Javascript
JS动态显示表格上下frame的方法
2015/03/31 Javascript
jquery实现右侧栏菜单选择操作
2016/03/04 Javascript
jQuery链式调用与show知识浅析
2016/05/11 Javascript
原生 JS Ajax,GET和POST 请求实例代码
2016/06/08 Javascript
Bootstrap Table 搜索框和查询功能
2017/11/30 Javascript
浅谈React的最大亮点之虚拟DOM
2018/05/29 Javascript
详解jQuery中的prop()使用方法
2020/01/05 jQuery
JavaScript使用prototype属性实现继承操作示例
2020/05/22 Javascript
JavaScript中遍历的十种方法总结
2020/12/15 Javascript
[54:30]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python fabric实现远程操作和部署示例
2014/03/25 Python
python在windows下创建隐藏窗口子进程的方法
2015/06/04 Python
python生成不重复随机数和对list乱序的解决方法
2018/04/09 Python
python实现石头剪刀布小游戏
2021/01/20 Python
pytorch实现onehot编码转为普通label标签
2020/01/02 Python
Python中使用filter过滤列表的一个小技巧分享
2020/05/02 Python
Django基于Models定制Admin后台实现过程解析
2020/11/11 Python
python 中 .py文件 转 .pyd文件的操作
2021/03/04 Python
英国排名第一的最新设计师品牌手表独立零售商:TIC Watches
2016/09/24 全球购物
JD Sports芬兰:英国领先的运动鞋和运动服饰零售商
2018/11/16 全球购物
DataReader和DataSet的异同
2014/12/31 面试题
小学生开学第一课活动方案
2014/03/27 职场文书
2014年驾驶员工作总结
2014/11/18 职场文书
2014年教师业务工作总结
2014/12/19 职场文书
工作时间调整通知
2015/04/24 职场文书
余世维讲座观后感
2015/06/11 职场文书
2016十一国庆节感言
2015/12/09 职场文书
2016党员干部反腐倡廉心得体会
2016/01/13 职场文书
初中思品教学反思
2016/02/20 职场文书
MongoDB支持的索引类型
2022/04/11 MongoDB
Redis数据同步之redis shake的实现方法
2022/04/21 Redis
Python+DeOldify实现老照片上色功能
2022/06/21 Python