Files
omniai-web/vite.config.ts
stringadmin 6b9953625e feat: UI interaction polish — exit animations, hover effects, directional transitions
- Add AnimatedPanel component with CSS transition-based enter/exit for
  Profile popover and Notification panel (140ms scale+fade)
- Add nav-activate-pulse animation for floating-nav active indicator (320ms glow)
- Add tool-panel-fade-in crossfade when switching ecommerce tools
- Add carousel-card-label slide-up-in 260ms on active carousel card
- Add feature-visual img hover scale(1.03)+brightness, experience-route hover translateY(-2px)
- Add community-case-card--mosaic hover scale(1.02)+shadow lift
- Add directional PageTransition: forward→slideX(20px), backward→slideX(-20px)
- Move vite proxy target from hardcoded IP to VITE_DEV_PROXY env variable
- Add .env.example for developer onboarding

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-02 18:31:39 +08:00

49 lines
1.3 KiB
TypeScript

import react from "@vitejs/plugin-react";
import { compression } from "vite-plugin-compression2";
import { defineConfig, loadEnv } from "vite";
export default defineConfig(({ mode }) => {
const env = loadEnv(mode, process.cwd(), "");
return {
plugins: [
react(),
compression({ algorithms: ["gzip", "brotliCompress"], threshold: 1024 }),
],
server: {
port: 5174,
host: "127.0.0.1",
proxy: {
"/api": {
target: env.VITE_DEV_PROXY || "http://47.110.225.76:3600",
changeOrigin: true,
},
},
},
preview: {
port: 4174,
host: "127.0.0.1",
},
esbuild: {
drop: ["console", "debugger"],
},
build: {
sourcemap: "hidden",
rollupOptions: {
output: {
manualChunks(id: string) {
if (id.includes("node_modules/react") || id.includes("node_modules/react-dom") || id.includes("node_modules/scheduler")) {
return "vendor-react";
}
if (id.includes("node_modules/@ant-design") || id.includes("node_modules/antd") || id.includes("node_modules/rc-")) {
return "vendor-antd";
}
if (id.includes("node_modules/@xyflow")) {
return "vendor-xyflow";
}
},
},
},
},
};
});