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, /* * 显式绑 IPv4 回环。 * * 不给 host 时 vite 走 Node 的默认解析,在本机上只绑到 `[::1]` —— 于是 * `http://127.0.0.1:5273` 直接连不上,而 `localhost` 通不通取决于浏览器/系统 * 把它解析成哪个栈:同一台机器上时好时坏,查起来极费劲(实测栽过一次)。 * 绑 `127.0.0.1` 之后 `localhost` 与 `127.0.0.1` 都通,且不暴露到局域网 * (要给别的设备访问再显式 `--host`,那是另一个决定)。 */ host: '127.0.0.1', proxy: { '/api': { target: 'http://127.0.0.1:8787', changeOrigin: true }, }, }, });