first commit
This commit is contained in:
53
terminal/apps/web/vite.config.ts
Normal file
53
terminal/apps/web/vite.config.ts
Normal file
@@ -0,0 +1,53 @@
|
||||
import { fileURLToPath, URL } from "node:url";
|
||||
import fs from "node:fs";
|
||||
import { defineConfig } from "vite";
|
||||
import vue from "@vitejs/plugin-vue";
|
||||
|
||||
const DEV_HOST = "0.0.0.0";
|
||||
const DEV_PORT = 5173;
|
||||
const DEV_PUBLIC_HOST = "shell.biboer.cn";
|
||||
const DEV_CERT_PATH = "/Users/gavin/.acme.sh/shell.biboer.cn_ecc/fullchain.cer";
|
||||
const DEV_KEY_PATH = "/Users/gavin/.acme.sh/shell.biboer.cn_ecc/shell.biboer.cn.key";
|
||||
|
||||
function resolveDevHttpsConfig() {
|
||||
// 优先复用 acme.sh 证书,确保本地开发服务直接以 HTTPS 暴露。
|
||||
if (!fs.existsSync(DEV_CERT_PATH) || !fs.existsSync(DEV_KEY_PATH)) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return {
|
||||
cert: fs.readFileSync(DEV_CERT_PATH),
|
||||
key: fs.readFileSync(DEV_KEY_PATH)
|
||||
};
|
||||
}
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [vue()],
|
||||
server: {
|
||||
host: DEV_HOST,
|
||||
port: DEV_PORT,
|
||||
strictPort: true,
|
||||
https: resolveDevHttpsConfig(),
|
||||
// 允许通过外网域名访问 dev server(含 HMR websocket 握手)。
|
||||
allowedHosts: [DEV_PUBLIC_HOST],
|
||||
// 明确 HMR 走外网域名,避免客户端回退到 localhost 导致连接拒绝。
|
||||
hmr: {
|
||||
protocol: "wss",
|
||||
host: DEV_PUBLIC_HOST,
|
||||
clientPort: DEV_PORT,
|
||||
port: DEV_PORT
|
||||
},
|
||||
proxy: {
|
||||
"/ws/terminal": {
|
||||
target: "ws://127.0.0.1:8787",
|
||||
ws: true,
|
||||
changeOrigin: true
|
||||
}
|
||||
}
|
||||
},
|
||||
resolve: {
|
||||
alias: {
|
||||
"@": fileURLToPath(new URL("./src", import.meta.url))
|
||||
}
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user