夜听城嚣 夜听城嚣
首页
  • 学习笔记

    • 《JavaScript高级程序设计》
    • 前端基建与架构
  • 专题分享

    • Git入门与开发
    • 前端面试题汇总
    • HTML和CSS知识点
  • 项目实践
  • 抓包工具
  • 知识管理
  • 工程部署
  • 团队规范
bug知多少
  • 少年歌行
  • 青年随笔
  • 文海泛舟
  • 此事躬行

    • 项目各工种是如何协作的
    • TBA课程学习
收藏

dwfrost

前端界的小学生
首页
  • 学习笔记

    • 《JavaScript高级程序设计》
    • 前端基建与架构
  • 专题分享

    • Git入门与开发
    • 前端面试题汇总
    • HTML和CSS知识点
  • 项目实践
  • 抓包工具
  • 知识管理
  • 工程部署
  • 团队规范
bug知多少
  • 少年歌行
  • 青年随笔
  • 文海泛舟
  • 此事躬行

    • 项目各工种是如何协作的
    • TBA课程学习
收藏
  • chrome控制台怎么复制对象
  • 小程序键盘弹起后顶起自定义导航问题
  • node子进程如何输出和关闭
  • 代理域名后webpack热更新失效及解决
    • 小程序scroll-view隐藏滚动条
    • npm包相关
    • electron下载慢解决
    • electron开发踩坑
    • mac升级后git找不到
    • electron打包找不到python
    • 安装imagemin-mozjpeg失败
    • 开发中的bug类型踩坑
    • 云端web项目开发踩坑
    • 如何快速定位bug
    • bug知多少
    frost
    2022-02-08

    代理域名后webpack热更新失效及解决

    # 问题描述

    先说下背景,通常情况下webpack(Vue)项目是通过npm run dev来启动的,webpack配置

        devServer: {
            hot: true,
        }
    
    1
    2
    3

    即可实现热更新。

    这种是常规的开发方式,访问的页面一般是localhost:端口号,没有任何问题。

    不过,个人习惯直接通过访问域名的方式来开发,通过代理工具来进行转发。比如在lightProxy中配置

    https://example.com http://localhost:8088
    
    1

    就可以在页面直接访问example.com来代替localhost:8088了。

    但这里就产生了新的问题,修改代码,webpack重新编译后,页面无法热更新了。

    # 问题分析

    先捋一下热更新的原理,参考自轻松理解webpack热更新原理 (opens new window)。

    1. webpack监听文件修改
    2. 触发重新编译
    3. 通过websocket通知浏览器
    4. 浏览器通过JSONP方式请求重新编译的js
    5. 新模块替换旧模块,页面更新

    然后对比下2种方式的区别

    • localhost访问

      建立ws,正常

      local_ws1

      local_ws2

      获取模块,正常,页面热更新

      local_xhr

      local_js

    • 域名访问

      建立ws,不正常

      domain_ws1

      domain_ws2

      获取模块,不正常,页面没有热更新

      domain_xhr

      domain_js

    问题比较明显了,域名开发的方式,在一开始建立websocket时就失败了,没有ws通信,浏览器是收不到重新编译通知的。

    # 问题解决

    只需要在lightProxy新增一行代理即可。

    ws://example:8088/ws ws://localhost:8088/ws
    
    1

    类似问题:

    关于Vue(webpack)项目在使用Nginx代理后, 热更新失效的问题 (opens new window)

    #webpack
    上次更新: 2022/02/08, 16:35:17
    node子进程如何输出和关闭
    小程序scroll-view隐藏滚动条

    ← node子进程如何输出和关闭 小程序scroll-view隐藏滚动条→

    最近更新
    01
    提交代码时修改commit消息
    04-09
    02
    如何快速定位bug
    02-20
    03
    云端web项目开发踩坑
    08-25
    更多文章>
    Theme by Vdoing | Copyright © 2021-2025 dwfrost | 粤ICP备2021118995号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式
    ×