Squash of recent dev work: return_session login, backend switcher, line detail timeline, overview strips, node platform/country/ISP info with flags and icons, build info (version, tag, time) behind site.show_build, and the acrylic display theme.
28 lines
1.2 KiB
TypeScript
28 lines
1.2 KiB
TypeScript
import react from '@vitejs/plugin-react'
|
|
import { fileURLToPath } from 'node:url'
|
|
import { defineConfig, loadEnv } from 'vite'
|
|
import { buildDefines } from '../build-info.mjs'
|
|
|
|
// 开发时把 /api 转发给后端,地址取自环境变量 BACKEND_URL,或 web/.env.local 里的 BACKEND_URL=(见 web/.env.example):
|
|
// BACKEND_URL=https://mo.oeo.one npm run dev:display
|
|
export default defineConfig(({ mode }) => {
|
|
const env = loadEnv(mode, fileURLToPath(new URL('..', import.meta.url)), '')
|
|
const backend = (process.env.BACKEND_URL ?? env.BACKEND_URL ?? 'http://localhost:29181').replace(/\/+$/, '')
|
|
return {
|
|
base: '/admin/',
|
|
define: buildDefines(mode === 'development'),
|
|
plugins: [react()],
|
|
resolve: { alias: { '@shared': fileURLToPath(new URL('../shared', import.meta.url)) } },
|
|
server: {
|
|
// 5174 常被 Docker Desktop 占用,管理端用 5175;端口被占时直接报错,不悄悄换到别的端口
|
|
port: 5175,
|
|
strictPort: true,
|
|
fs: { allow: ['..'] },
|
|
proxy: {
|
|
'/api': { target: backend, changeOrigin: true, secure: true, cookieDomainRewrite: '' },
|
|
'/healthz': { target: backend, changeOrigin: true, secure: true, cookieDomainRewrite: '' },
|
|
},
|
|
},
|
|
}
|
|
})
|