详解关于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 相关文章推荐
基于Jquery与WebMethod投票功能实现代码
Jan 19 Javascript
Javascript拓展String方法小结
Jul 08 Javascript
动态添加删除表格行的js实现代码
Feb 28 Javascript
JS+CSS实现的漂亮渐变背景特效代码(6个渐变效果)
Mar 25 Javascript
ECHO.js 纯javascript轻量级延迟加载的实例代码
May 24 Javascript
AngularJS ng-blur 指令详解及简单实例
Jul 30 Javascript
详解js产生对象的3种基本方式(工厂模式,构造函数模式,原型模式)
Jan 09 Javascript
jQuery实现对网页节点的增删改查功能示例
Sep 18 jQuery
vue2 前端搜索实现示例
Feb 26 Javascript
Promise.all中对于reject的处理方法
Aug 01 Javascript
通过seajs实现JavaScript的模块开发及按模块加载
Jun 06 Javascript
PHP 502bad gateway原因及解决方案
Nov 13 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中数组合并的两种方法及区别介绍
2012/09/14 PHP
Linux下PHP加速器APC的安装与配置笔记
2014/10/24 PHP
学习php设计模式 php实现桥梁模式(bridge)
2015/12/07 PHP
分享5个非常有用的Laravel Blade指令
2018/05/30 PHP
php使用json-schema模块实现json校验示例
2019/09/28 PHP
Laravel 6.2 中添加了可调用容器对象的方法
2019/10/22 PHP
Js基础学习资料
2010/11/23 Javascript
教你如何在 Javascript 文件里使用 .Net MVC Razor 语法
2014/07/23 Javascript
第一章之初识Bootstrap
2016/04/25 Javascript
AngularJS基础 ng-click 指令示例代码
2016/08/01 Javascript
基于jQuery实现一个marquee无缝滚动的插件
2017/03/09 Javascript
bootstrap响应式表格实例详解
2017/05/15 Javascript
jQuery使用zTree插件实现可拖拽的树示例
2017/09/23 jQuery
nodejs+express搭建多人聊天室步骤
2018/02/12 NodeJs
解决vue-router中的query动态传参问题
2018/03/20 Javascript
详解Vue项目中出现Loading chunk {n} failed问题的解决方法
2018/09/14 Javascript
vue里如何主动销毁keep-alive缓存的组件
2019/03/21 Javascript
Vue实现导航栏点击当前标签变色功能
2020/08/19 Javascript
jquery 时间戳转日期过程详解
2019/10/12 jQuery
js实现贪吃蛇小游戏
2019/10/29 Javascript
Vue3 的响应式和以前有什么区别,Proxy 无敌?
2020/05/20 Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
2020/08/03 Javascript
构建一个JavaScript插件系统
2020/10/20 Javascript
[03:03]DOTA2校园争霸赛 济南城市决赛欢乐发奖活动
2013/10/21 DOTA
Python中的闭包总结
2014/09/18 Python
Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法
2019/08/26 Python
django从后台返回html代码的实例
2020/03/11 Python
Pop In A Box英国:Funko POP搪胶公仔
2019/05/27 全球购物
美国波西米亚风格精品店:South Moon Under
2019/10/26 全球购物
.net C#面试题
2012/08/28 面试题
警示教育活动总结
2014/05/05 职场文书
物业消防安全责任书
2014/07/23 职场文书
客户答谢会活动方案
2014/08/31 职场文书
民主生活会意见
2015/06/05 职场文书
GO语言字符串处理函数之处理Strings包
2022/04/14 Golang
python实现一个简单的贪吃蛇游戏附代码
2022/06/28 Python