Archived
这坑栽了两次:不给 host 只绑 [::1],127.0.0.1 连不上;上次改绑 127.0.0.1, [::1] 又连不上。浏览器把 localhost 解析到哪族全看系统心情,表现就是「时好时坏」。 回环双栈没有单 socket 的绑法,只能 any(host: true)。 代价写在配置里:会暴露到局域网 —— 但 API 从来就是 `*:8787`(Node 默认双栈 any), Web 跟它对齐没有扩大暴露面;有登录门,且这是开发机。要收回环改回 '127.0.0.1' 即可。 实测:127.0.0.1 / [::1] / localhost 三种写法全 200,/api 代理 200。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KeDBx2PHLavbURXB8LJJ7m
41 lines
1.5 KiB
TypeScript
41 lines
1.5 KiB
TypeScript
import { defineConfig } from 'vite';
|
|
import react from '@vitejs/plugin-react';
|
|
import { fileURLToPath } from 'node:url';
|
|
|
|
const root = fileURLToPath(new URL('../..', import.meta.url));
|
|
const p = (rel: string) => fileURLToPath(new URL(rel, import.meta.url));
|
|
|
|
export default defineConfig({
|
|
plugins: [react()],
|
|
resolve: {
|
|
alias: {
|
|
'@contracts': `${root}packages/contracts/src/index.ts`,
|
|
'@sfeel': `${root}packages/sfeel/src/index.ts`,
|
|
'@ui': `${root}packages/ui-kit/src/index.ts`,
|
|
'@utils': `${root}packages/utils/src/index.ts`,
|
|
'@features': p('./src/features'),
|
|
'@web-shared': p('./src/shared'),
|
|
'@contracts/': `${root}packages/contracts/src/`,
|
|
},
|
|
},
|
|
server: {
|
|
port: 5173,
|
|
/*
|
|
* 双栈全绑(host: true = `::` 双栈 any)。
|
|
*
|
|
* 这坑栽过**两次**:不给 host 时只绑 `[::1]`,`127.0.0.1` 连不上;
|
|
* 改绑 `127.0.0.1` 后 `[::1]` 又连不上 —— 单栈回环怎么绑都有一族是死的,
|
|
* 浏览器把 localhost 解析到哪族全看系统心情,表现就是「时好时坏」。
|
|
* 回环双栈没有单 socket 的绑法,只能 any。
|
|
*
|
|
* 代价说明白:这会暴露到局域网 —— 但 API 从来就是 `*:8787`(Node 默认双栈 any),
|
|
* Web 跟它对齐并没有扩大暴露面;有登录门,且这是开发机。
|
|
* 要收回环,把这里改回 '127.0.0.1',并接受 [::1] 那族不通。
|
|
*/
|
|
host: true,
|
|
proxy: {
|
|
'/api': { target: 'http://127.0.0.1:8787', changeOrigin: true },
|
|
},
|
|
},
|
|
});
|