vite 如何指定热更新ws端口

发布于 2022-09-13 00:33:35 字数 1689 浏览 19 评论 0

vite + vue3的项目
运行开发模式: 127.0.0.1:9001
通过Nginx配置 local-xxxx.com 代理到 127.0.0.1:9001
访问127.0.0.1:9001一切正常
访问local-xxxx.com会在展示成功后自动重新加载(每次页面展示完之后自动reload)

经测试发现在访问local-xxxx.com时, Websocket连接失败导致.

在vite.config.js server中有一项hmr配置:

export interface HmrOptions {
  protocol?: string
  host?: string
  port?: number
  clientPort?: number
  path?: string
  timeout?: number
  overlay?: boolean
  server?: Server
}

当前尝试配置:

{
        server: {
            host: true,
            port: 9001,
            open: true,
            proxy: {
                '/api': {
                    target: process.env.SERVER_URL,
                    changeOrigin: true,
                },
            },
            hrm: {
                clientPort: 80,
                port: 80,
            }
        },
}

nginx配置:

map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
}
server {
        listen 80;
        server_name local-xxxx.com;

        location / {
                proxy_pass http://127.0.0.1:9001;
                proxy_read_timeout 300s;
                proxy_send_timeout 300s;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "Upgrade";
        }
}

但是配置端口没有效果.
image.png
导致刷新的源码:
image.png

====================================
域名带端口在当前开发环境下是应该也能正常连接才对
最终处理方式是在hosts中将域名由127.0.0.1 改为 wsl的ip, 这个时候就都正常了.
可能是个人的开发环境太复杂了. (vscode:wsl wsl+nginx)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

南城旧梦 2022-09-20 00:33:35

看你的描述,连接失败,是不是nginx的问题,我使用vite重载没有出现类似的问题

我的nginx 配置

image.png

时光倒影 2022-09-20 00:33:35

是 server.hmr,不是 server.hrm

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文