- 重命名项目为 openbridgeTokenUsageViewer (camelCase 风格) - 移除 DJB2 hash 端口计算,改用 PROJECT_SERVER_PORT 环境变量 (默认 3000) - 删除 src/lib/project-port.ts 冗余模块 - 打包目标从 "all" 改为 "msi",专注 Windows 安装程序发布
77 lines
2.1 KiB
TypeScript
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/**'],
|
|
},
|
|
},
|
|
})
|