docker Vite钉仓环

nzk0hqpo  于 2023-04-20  发布在  Docker
关注(0)|答案(4)|浏览(155)

我正在尝试完成从Parcel到Vite的迁移。我们使用Caddy通过Docker容器在本地反向代理自定义域。我遇到的问题是,当我在浏览器中加载客户端时,它不断刷新,控制台说Vite正在连接,然后“服务器连接丢失,轮询重新启动”循环。
下面是vite.config.json:

// @ts-ignore
import tailwindcss from "@tailwindcss/jit";
import react from "@vitejs/plugin-react";
// import reactRefresh from "@vitejs/plugin-react-refresh";
// @ts-ignore
import dotenv from "dotenv";
// import postcssImport from "postcss-import";
import presetEnv from "postcss-preset-env";
import { defineConfig } from "vite";

// export default (() => {
// Object.assign(process.env, loadEnv("", ".."));
// dotenv.config({ path: "../.env" });
// now you can access config with process.env.{configName}

export default defineConfig({
  server: {
    host: "0.0.0.0",
    // hmr: false,
    port: 1234,
  },
  plugins: [react()],
  css: {
    postcss: {
      plugins: [
        tailwindcss,
        presetEnv({ stage: 1 }),
      ],
    },
  },
});
// });

我查看了容器日志,没有看到任何崩溃的报告。我试过修改配置,但没有任何真实的效果。

ep6jt1vc

ep6jt1vc1#

我有一个类似的问题,使用配置中的clientPort选项解决了我的问题。
我也在Docker中使用Caddy,这里是我的配置:

:80 {
    reverse_proxy /api/* back:3000
    reverse_proxy /graphql back:3000
    reverse_proxy front:8080
}

我将其用作反向代理,这里的“front”引用了Vite在开发模式下提供的Vue应用程序。
通过在我的 vite.config.ts 中添加这个,它修复了这个问题。

server: {
    port: 8080,
    host: "0.0.0.0",
    hmr: {
      clientPort: 80,
    },
  },

链接到vite doc-server.hmr配置
不知道这是否是正确的解决方案。希望能有所帮助。

dbf7pr2w

dbf7pr2w2#

我也在将Vue应用程序迁移到Vite的过程中。因此,我将docker-compose.yml中的ports从标准Vue 8080->8080更改为Vite的3000->8080(以保持向外端口相同)。

version: "3.7"
services:
        ...
        ports:
        - 8080:3000

然而,Vite不会知道这个端口重新Map。因此我需要将clientPort: 8080(我实际暴露的端口)添加到vite.config.js

export default defineConfig({
  ...
  server: {
    hmr: {
      clientPort: 8080,
    },
  }
}
jgovgodb

jgovgodb3#

我在使用nginx和ssl时遇到了类似的问题。它在端口80上尝试使用ws而不是wss。您的详细信息会有所不同,但我查看了日志,看看nginx在做什么,然后查看浏览器,看看它试图做什么。这是我的(部分)vite.config.js

export default defineConfig({
  server: {
    // hot module reload for dev server
    hmr: {
      host: 'yourhost',
      protocol: 'wss',
      clientPort: 443
    }
  }
})
ztyzrc3y

ztyzrc3y4#

我有类似的问题,反向代理与nginx.该问题已修复:
将hmr路径添加到 * vite.config.js *

server: {
  port: 3000,
  hmr: {
    path: 'ws',
  },
},

并添加nginx配置,用于反转 ws 路径

location / {...}
# new config start
location /ws {
  proxy_pass http://localhost:3000;
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "Upgrade";
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

相关问题