vite.config.ts
Rama main · réplica de lectura del repositorio original.
import { defineConfig, loadEnv } from "vite";
import react from "@vitejs/plugin-react";
const DEV_WEB_PORT = 39100;
const DEV_API_PORT = 39101;
const PRODUCTION_WEB_PORT = 39000;
export default defineConfig(({ mode }) => {
// 加载环境变量
const env = loadEnv(mode, process.cwd(), '');
const isDev = mode === 'development';
const apiTarget = env.VITE_API_BASE || `http://localhost:${DEV_API_PORT}`;
return {
plugins: [react()],
// 定义全局常量
define: {
__DEV__: isDev,
__PROD__: !isDev,
},
server: {
port: DEV_WEB_PORT,
host: true,
// 开发环境代理配置
proxy: isDev ? {
"/api": {
target: apiTarget,
changeOrigin: true,
},
} : undefined,
},
build: {
// 生产环境优化
minify: 'terser',
terserOptions: {
compress: {
// 生产环境移除 console.log
drop_console: !isDev,
drop_debugger: !isDev,
},
},
// 分包策略
rollupOptions: {
output: {
manualChunks: {
'react-vendor': ['react', 'react-dom'],
'motion': ['framer-motion'],
'dnd': ['@dnd-kit/core', '@dnd-kit/sortable', '@dnd-kit/utilities'],
},
},
},
},
// 预览服务器使用生产 Web 端口
preview: {
port: PRODUCTION_WEB_PORT,
host: true,
},
};
});