Webpack 的 HMR 功能,是通过 WebSocket 实现的推送 JSON Patch,同时需要第三方库支持。

具体解决方案:

热加载(HMR)是 Webpack Dev Server 最强大的功能之一,页面源码的变更可以无需刷新地实时推送到页面上。以 vue 为例,一个最简的 HMR 配置策略如下所示:

首先安装 webpack-dev-server 与前端 JS 库的 HMR 依赖(如 Vue 的 vue-hot-reload-api),而后编辑 package.json中的命令:

{
"scripts": {
"dev-server": "webpack-dev-server --hot --inline"
}
}

添加这一行代码后,运行 npm run dev-server 即可实现带 HMR 功能的 dev-server 引入。这也就相当于在完全没有修改业务代码的前提下,完成了 HMR 的引入(实际上这也确实是一个 opt-in 的特性)。而若需对 Webpack Dev Server 进行配置,可以编辑 webpack.config.js 中 module. devServer 的相关字段。

虽然 HMR 非常实用,但与 Webpack Dev Server 的集成也一定程度上影响了其泛用性。在一些场景下,我们仍然需要在开发时使用 Webpack 写入到磁盘的 bundle 文件,这时候就显然无法使用和 Dev Server 配套的 HMR 功能了。这带来了一个问题:如何在 Webpack 配置中实现既支持 HMR,又支持类似 --watch 的传统开发模式呢?

通过 NPM Scripts,可以很容易地区分带 HMR 和不带 HMR 的构建命令。例如如下的配置:

{
"scripts": {
"dev": "webpack --watch",
"dev-server": "webpack-dev-server --hot --inline"
}
}

就区分了两条构建开发包的命令,区别在于通过 webpack 的命令会将打包文件动态写入磁盘,而使用 webpack-dev-server 的命令可以在使用 webpack 配置文件的基础上,无缝引入 HMR 特性。这样,在开发环境不适合使用 HMR 的场合也可以通过 npm run dev 命令实现回退。

控制台报错 [WDS] Disconnected!的更多相关文章

  1. 登录DSCCC控制台报错提示:安装错误代码: 3

    登录DSCCC控制台报错内容:读取安装配置时出错 检查目录服务控制中心状态时出现意外错误. 显示详细资料 隐藏详细资料 安装错误代码: 3 堆栈: com.sun.directory.common.s ...

  2. Putty使用公钥认证时,报错:Disconnected: No supported authentication methods available(server sent:public key) 问题的解决

    Putty使用公钥认证时,按照常规方法设置,一直报错:Disconnected: No supported authentication methods available (server sent: ...

  3. Chrome 控制台报错Unchecked runtime.lastError: The message port closed before a response was received

    Chrome浏览器控制台报错提示 Unchecked runtime.lastError: The message port closed before a response was received ...

  4. node+react 打包成功,控制台报错

    控制台报错: 'ReactCurrentOwner' of undefined 解决办法:RN版本的问题. As I mentioned, make sure you've installed the ...

  5. 控制台报错: SCRIPT1006: Expected ')'

    今天做网站的时候,jsp页面取一个值死活取不出来. <script> if(${not empty requestScope.article.articleId}){ alert(${re ...

  6. 特殊字符导致jquery-mobile 挂起(firefox控制台报错 malformed URI sequence)

    同事遇到一个问题,刷新页面导致页面挂起,浏览器控制台报错 malformed URI sequence, 经排查发现是引用jquery-mobile js引起的问题, 有一些中文参数在url中,当页面 ...

  7. Chrome控制台报错个人总结(不定时更新)

    最近开始使用Chrome控制台检测代码错误,对于经常碰到的报错做一个汇总,免得每次遇到都要重新想一遍策略,错误原因,重复劳动,浪费时间. 由于不是每个错误都能碰到,以下仅列出个人写代码时经常碰到的报错 ...

  8. 填坑——audio不能正常播放,控制台报错 Uncaught (in promise) DOMException

    原文:https://blog.csdn.net/Mariosss/article/details/87861167 用chrome调试页面时,发现audio控件有时不能正常播放音频,控制台报错 Un ...

  9. vue开发中控制台报错问题

    1.sockjs.js?9be2:1606 GET http://localhost:8566/sockjs-node/info?t=1569478261510 net::ERR_CONNECTION ...

随机推荐

  1. 使用Putty登录亚马逊云主机

    亚马逊云主机配置之后会提示 提供一个 pem证书, 打开 SSH 客户端.(了解操作方法 使用 PuTTY 连接) 找到您的私有密钥文件(test001.pem).向导会自动检测您用于启动实例的密钥. ...

  2. JavaScript form表单提交与验证

    原网址:https://blog.csdn.net/vipwxs/article/details/79119701 一.form对象的属性: name:获取表单的名称,该name一般给JS使用 met ...

  3. 中阶 d05 tomcat 安装 eclipse上配置tomcat

    eclipse使用参考 https://www.bilibili.com/video/av49438855/?p=24 1. 直接解压 ,然后找到bin/startup.bat 2. 可以安装 启动之 ...

  4. Exchange 2016 OWA登陆异常

    今天,收到脚本的告警信息,有一台Exchange服务器OWA无法登陆! 手动进行了一下测试,发现确实存在问题,报错信息如下: 检查了一下该台服务器的日志,找到了如下信息 1.访问OWA的请求在HTTP ...

  5. Linux环境安装Docker

    1. 使用APT安装 # 更新数据源 apt-get update # 安装所需依赖 apt-get -y install apt-transport-https ca-certificates cu ...

  6. 好消息,vue3.0 进入 beta 阶段!

    昨天,4 月 16 日,vue 3 正式进入 beta 阶段.同日,尤大参加了 State of Vue 的线上活动,以下是他上传到 google docs 上的 slides : State of ...

  7. 【LeetCode】23.合并K个排序链表

    题目描述 23.合并K个排序链表 合并k个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例: 输入: [ 1->4->5, 1->3->4, 2->6 ] ...

  8. 多线程高并发编程(4) -- ReentrantReadWriteLock读写锁源码分析

    背景: ReentrantReadWriteLock把锁进行了细化,分为了写锁和读锁,即独占锁和共享锁.独占锁即当前所有线程只有一个可以成功获取到锁对资源进行修改操作,共享锁是可以一起对资源信息进行查 ...

  9. 经常出现在python中的错误和异常处理

    PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 http://t.cn/A6Zvjdun 使用try except处理异常 上面的代码中,被除数是0,会引发ZeroDivisio ...

  10. Daily Scrum 12/29/2015

    Process: Zhaoyang: Add the Time bar feature in the APP and complete the Speech API. Yandong: Do some ...