Files
openbridge-token-usage-viewer/vite.config.ts
MAO Dongyang fa625ca301 refactor: 简化项目配置,改用环境变量端口并专注 MSI 发布
- 重命名项目为 openbridgeTokenUsageViewer (camelCase 风格)
- 移除 DJB2 hash 端口计算,改用 PROJECT_SERVER_PORT 环境变量 (默认 3000)
- 删除 src/lib/project-port.ts 冗余模块
- 打包目标从 "all" 改为 "msi",专注 Windows 安装程序发布
2026-01-22 14:19:43 +08:00

77 lines
2.1 KiB
TypeScript

/**
* Vite 构建配置
*
* 集成 TanStack Start (SSR) + Nitro (服务端) + Tailwind CSS + React Compiler。
*
* 特性:
* - Bun 运行时优化 (nitro preset: 'bun')
* - 静态资源内联 (serveStatic: 'inline')
* - React Compiler 自动优化 (无需手动 memo)
* - 端口从环境变量 PROJECT_SERVER_PORT 读取 (默认 3000)
*/
import tailwindcss from '@tailwindcss/vite'
import { devtools as tanstackDevtools } from '@tanstack/devtools-vite'
import { tanstackStart } from '@tanstack/react-start/plugin/vite'
import react from '@vitejs/plugin-react'
import { nitro } from 'nitro/vite'
import { defineConfig, loadEnv } from 'vite'
import tsconfigPaths from 'vite-tsconfig-paths'
// ============================================================================
// 项目配置 (集中管理)
// ============================================================================
/** 加载 .env 文件中的环境变量 */
const envVars = loadEnv('development', process.cwd(), '')
/** 开发服务器端口 (从环境变量读取,默认 3000) */
const DEV_PORT = Number(envVars.PROJECT_SERVER_PORT) || 3000
export default defineConfig({
// 禁止清屏,方便与 Tauri 开发工具共用终端
clearScreen: false,
build: {
// 使用 esbuild 进行 CSS 压缩
// 避免 lightningcss 处理第三方 CSS 时的兼容性问题
cssMinify: 'esbuild',
},
plugins: [
// TanStack 开发工具
tanstackDevtools(),
// Nitro 服务端框架 (Bun 运行时)
nitro({
preset: 'bun',
serveStatic: 'inline',
}),
// TypeScript 路径别名 (@/* -> src/*)
tsconfigPaths(),
// Tailwind CSS v4
tailwindcss(),
// TanStack Start SSR 框架
tanstackStart(),
// React + Babel (启用 React Compiler)
react({
babel: {
plugins: ['babel-plugin-react-compiler'],
},
}),
],
server: {
port: DEV_PORT,
// 如果端口被占用则报错,而不是自动切换端口
strictPort: false,
watch: {
// 忽略 Tauri 源码目录,避免不必要的重编译
ignored: ['**/src-tauri/**'],
},
},
})