基于webpack-hot-middleware热加载相关错误的解决方法


Posted in Javascript onFebruary 22, 2018

错误1:找不到__webpack_hmr

GET http://127.0.0.1/__webpack_hmr 404 (Not Found)

在webpack的entry配置添加引用路径'webpack-hot-middleware/client?path=/__webpack_hmr&timeout=10000&reload=true',相关的参数最好不要省略,否则会出现无法自动刷新的问题。

处理脚本如下:

// 准备webpack配置信息
let hotMiddlewareScript = 'webpack-hot-middleware/client?path=/__webpack_hmr&timeout=10000&reload=true',
 wpConfig = require('./webpack.config'),
 // 准备修改配置信息
 entries = Object.keys(wpConfig.entry)

// 添加热加载信息
entries.forEach((key) => {
 wpConfig.entry[key].push(hotMiddlewareScript);
})

// 添加插件信息
if(wpConfig.plugins === undefined) {
 wpConfig.plugins = []
}

// 添加热加载插件
wpConfig.plugins.push(
 new webpack.optimize.OccurrenceOrderPlugin(),
 new webpack.HotModuleReplacementPlugin(),
 new webpack.NoEmitOnErrorsPlugin())

错误2:找不到hot-update.json

main.bundle.js:30 GET http://127.0.0.1/static/44588e3474a86cea5670.hot-update.json 404 (Not Found)

webpack配置中的publicPath必须是绝对地址,详细配置如下所示:

module.exports = {
 // 其他配置信息略
 // ……
 output : {
 path: configs.dist,
 // 必须是绝对地址
 publicPath: 'http://127.0.0.1/static/',
 filename : '[name].bundle.js',
 libraryTarget : 'var' 
 }
}

错误3:No ‘Access-Control-Allow-Origin' header

XMLHttpRequest cannot load http://127.0.0.1/static/df222441abc9ddb6a616.hot-update.json. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access.

不可思议,在本地访问竟然会出现AJAX跨域问题,仔细检查后发现,浏览器把localhost与127.0.0.1当成了两个不同的域,解决的方法很多,只说最简单的一种,访问应用时,尽量采用与webpack配置中的publicPath完全一致的路径,如在本文中,最好的访问方法是输入http://127.0.0.1/访问本地应用。

错误4:OccurenceOrderPlugin构造器错误

new webpack.optimize.OccurenceOrderPlugin(),
TypeError: webpack.optimize.OccurenceOrderPlugin is not a constructor
 at Object.<anonymous> (E:\Workspace\vue-hot\dev-server.js:23:6)
 at Module._compile (module.js:570:32)
 at Object.Module._extensions..js (module.js:579:10)
 at Module.load (module.js:487:32)
 at tryModuleLoad (module.js:446:12)
 at Function.Module._load (module.js:438:3)
 at Module.runMain (module.js:604:10)
 at run (bootstrap_node.js:394:7)
 at startup (bootstrap_node.js:149:9)
 at bootstrap_node.js:509:3

此问题一般出现在webpack 2中,解决办法很简单,将OccurenceOrderPlugin改为OccurrenceOrderPlugin即可。

总结

webpack编译程序有两种热加载方式,webpack-dev-server与webpack-hot-middleware方式,从webpack 2的性能来看,webpack-dev-server完全能够满足开发的需要,但最大的问题在于,webpack-dev-server不能向外发布服务,只能在本地访问。

以上这篇基于webpack-hot-middleware热加载相关错误的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery 1.4 15个你应该知道的新特性(译)
Jan 24 Javascript
如何使用jQUery获取选中radio对应的值(一句代码)
Jun 03 Javascript
js的alert弹出框出现乱码解决方案
Sep 02 Javascript
jquery操作checkbox示例分享
Jul 21 Javascript
Javascript 实现图片无缝滚动
Dec 19 Javascript
JavaScript测试工具之Karma-Jasmine的安装和使用详解
Dec 03 Javascript
node.js路径处理方法以及绝对路径详解
Mar 04 Javascript
js装饰设计模式学习心得
Feb 17 Javascript
js实现控制文件拖拽并获取拖拽内容功能
Feb 17 Javascript
vue判断input输入内容全是空格的方法
Mar 02 Javascript
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
Jan 21 Javascript
教你一步步实现一个简易promise
Nov 02 Javascript
解决Webpack 热部署检测不到文件变化的问题
Feb 22 #Javascript
webpack-dev-server自动更新页面方法
Feb 22 #Javascript
javascript高仿热血传奇游戏实现代码
Feb 22 #Javascript
实现jquery放大镜的两种方法
Feb 22 #jQuery
JavaScript正则表达式函数总结(常用)
Feb 22 #Javascript
Node Puppeteer图像识别实现百度指数爬虫的示例
Feb 22 #Javascript
原生js调用json方法总结
Feb 22 #Javascript
You might like
WindowsXP中快速配置Apache+PHP5+Mysql
2008/06/05 PHP
关于php fread()使用技巧
2010/01/22 PHP
phpmail类发送邮件函数代码
2012/02/20 PHP
学习php设计模式 php实现模板方法模式
2015/12/08 PHP
超级24小时弹窗代码 24小时退出弹窗代码 100%弹窗代码(IE only)
2010/06/11 Javascript
Javascript调用函数方法的几种方式介绍
2015/03/20 Javascript
通过设置CSS中的position属性来固定层的位置
2015/12/14 Javascript
使用堆实现Top K算法(JS实现)
2015/12/25 Javascript
浅析AngularJs HTTP响应拦截器
2015/12/28 Javascript
简单的JS轮播图代码
2016/07/18 Javascript
JS冒泡事件与事件捕获实例详解
2016/11/25 Javascript
javascript实现下雨效果
2017/03/27 Javascript
浅谈Angular4中常用管道
2017/09/27 Javascript
深入理解vuex2.0 之 modules
2017/11/20 Javascript
javaScript产生随机数的用法小结
2018/04/21 Javascript
基于Vue实现拖拽效果
2018/04/27 Javascript
微信小程序全局变量GLOBALDATA的定义和调用过程解析
2019/09/23 Javascript
layui table 表格上添加日期控件的两种方法
2019/09/28 Javascript
js实现文字头像的生成代码
2020/03/07 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS VG
2014/05/25 DOTA
[43:48]Ti4正赛第一天 VG vs NEWBEE 2
2014/07/19 DOTA
CentOS 6.X系统下升级Python2.6到Python2.7 的方法
2016/10/12 Python
Python和Java进行DES加密和解密的实例
2018/01/09 Python
在windows下Python打印彩色字体的方法
2018/05/15 Python
python使用matplotlib模块绘制多条折线图、散点图
2020/04/26 Python
基于pycharm导入模块显示不存在的解决方法
2018/10/13 Python
Python基础之列表常见操作经典实例详解
2020/02/26 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
2020/03/06 Python
人民教师的自我评价分享
2014/02/21 职场文书
国际贸易专业自荐信
2014/06/10 职场文书
2014年卫生监督工作总结
2014/12/09 职场文书
关于国庆节的广播稿
2015/08/19 职场文书
《莫泊桑拜师》教学反思
2016/02/22 职场文书
CSS3通过var()和calc()函数实现动画特效
2021/03/30 HTML / CSS
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
2022/04/29 Servers
SQLServer常见数学函数梳理总结
2022/08/05 MySQL