- 升级 tailwindcss@4.3 + @tailwindcss/vite,移除 postcss/autoprefixer/tailwindcss-animate - tailwindcss-animate 替换为 tw-animate-css(v4 兼容的 animate-in/out 工具类) - global.css 改用 @import "tailwindcss" + @theme inline 映射 shadcn 设计令牌 - @custom-variant dark 替代 darkMode:'class';@source 显式纳入 pages/ 目录 - 删除 tailwind.config.ts / postcss.config.js,components.json 同步 v4 约定 - vite.config.ts 接入 tailwindcss 插件,__dirname 改 import.meta.dirname
53 lines
1.5 KiB
TypeScript
53 lines
1.5 KiB
TypeScript
import path from 'node:path';
|
||
import { defineConfig } from 'vite';
|
||
import react from '@vitejs/plugin-react';
|
||
import vike from 'vike/plugin';
|
||
import tailwindcss from '@tailwindcss/vite';
|
||
|
||
// 与 Go 后端默认端口一致,可通过 VITE_API_PORT 覆盖
|
||
const apiPort = process.env.VITE_API_PORT || '3000';
|
||
const apiTarget = `http://localhost:${apiPort}`;
|
||
|
||
export default defineConfig({
|
||
plugins: [react(), vike(), tailwindcss()],
|
||
resolve: {
|
||
alias: {
|
||
'@': path.resolve(import.meta.dirname, './src'),
|
||
},
|
||
},
|
||
base: '/',
|
||
build: {
|
||
// Vike 双构建:产出 dist/client(静态资源)+ dist/server(SSR 渲染入口)
|
||
outDir: 'dist',
|
||
emptyOutDir: true,
|
||
rollupOptions: {
|
||
output: {
|
||
manualChunks(id) {
|
||
if (!id.includes('node_modules')) return;
|
||
if (id.includes('dompurify')) return 'purify-vendor';
|
||
if (id.includes('@tanstack/react-virtual')) return 'virtual-vendor';
|
||
if (id.includes('@radix-ui') || id.includes('lucide-react')) return 'ui-vendor';
|
||
if (
|
||
id.includes('react-dom')
|
||
|| id.includes('react-router')
|
||
|| /[/\\]node_modules[/\\]react[/\\]/.test(id)
|
||
) {
|
||
return 'react-vendor';
|
||
}
|
||
},
|
||
},
|
||
},
|
||
},
|
||
server: {
|
||
port: 5173,
|
||
strictPort: true,
|
||
proxy: {
|
||
'/api': apiTarget,
|
||
'/uploads': apiTarget,
|
||
'/media': apiTarget,
|
||
'/oauth': apiTarget,
|
||
'/.well-known': apiTarget,
|
||
},
|
||
},
|
||
});
|