详解关于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实现信息增删改查的方法
Jul 25 Javascript
封装好的javascript前端分页插件pagination
Jan 04 Javascript
基于HTML+CSS,jQuery编写的简易计算器后续(添加了键盘监听)
Jan 05 Javascript
基于Node.js的强大爬虫 能直接发布抓取的文章哦
Jan 10 Javascript
详解javascript实现瀑布流绝对式布局
Jan 29 Javascript
jQuery中的siblings()是什么意思(推荐)
Dec 29 Javascript
微信小程序 slider 详解及实例代码
Jan 10 Javascript
详解Node使用Puppeteer完成一次复杂的爬虫
Apr 18 Javascript
使用vue-router完成简单导航功能【推荐】
Jun 28 Javascript
vue.js 实现评价五角星组件的实例代码
Aug 13 Javascript
JS实现简易留言板特效
Dec 23 Javascript
JS实现超级好看的鼠标小尾巴特效
Dec 01 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(7) php 字符串相关应用
2010/03/05 PHP
php文件上传的例子及参数详解
2013/12/12 PHP
浅析php中json_encode()和json_decode()
2014/05/25 PHP
用PHP去掉文件头的Unicode签名(BOM)方法
2017/06/22 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
JavaScript 给汉字排序实例代码
2008/06/28 Javascript
jQuery 1.3 和 Validation 验证插件1.5.1
2009/07/09 Javascript
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
2012/02/03 Javascript
jquery设置元素的readonly和disabled的写法
2013/09/22 Javascript
JavaScript取得WEB安全颜色列表的方法
2015/07/14 Javascript
jquery实现倒计时功能
2015/12/28 Javascript
JS动态给对象添加属性和值的实现方法
2016/10/21 Javascript
微信小程序 swiper制作tab切换实现附源码
2017/01/21 Javascript
vue.js利用Object.defineProperty实现双向绑定
2017/03/09 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
angularJs-$http实现百度搜索时的动态下拉框示例
2018/02/27 Javascript
解决vue-cli + webpack 新建项目出错的问题
2018/03/20 Javascript
微信小程序自定义导航教程(兼容各种手机)
2018/12/12 Javascript
react中使用css的7中方式(最全总结)
2019/02/11 Javascript
JS校验与最终登陆界面功能完整示例
2020/01/13 Javascript
JavaScript多种图形实现代码实例
2020/06/28 Javascript
[01:02:54]完美世界DOTA2联赛PWL S2 FTD vs GXR 第一场 11.22
2020/11/26 DOTA
Python实现的建造者模式示例
2018/08/06 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
2019/03/27 Python
python对Excel按条件进行内容补充(推荐)
2019/11/24 Python
Tensorflow轻松实现XOR运算的方式
2020/02/03 Python
python sorted函数原理解析及练习
2020/02/10 Python
浅谈在django中使用redirect重定向数据传输的问题
2020/03/13 Python
在Keras中利用np.random.shuffle()打乱数据集实例
2020/06/15 Python
CSS3制作苹果风格键盘特效
2015/02/26 HTML / CSS
使用html5制作loading图的示例
2014/04/14 HTML / CSS
澳大利亚天然护肤品、化妆品和健康产品一站式商店:Nourished Life
2018/12/02 全球购物
Linux如何修改文件和文件夹的权限
2012/06/27 面试题
个人借条范本
2015/05/25 职场文书
基于Redis位图实现用户签到功能
2021/05/08 Redis
Python打包为exe详细教程
2021/05/18 Python