Files
Genarrative/vite.config.ts
2026-04-18 13:05:29 +08:00

115 lines
3.0 KiB
TypeScript

import path from 'node:path';
import tailwindcss from '@tailwindcss/vite';
import react from '@vitejs/plugin-react';
import {defineConfig, loadEnv} from 'vite';
export default defineConfig(({mode}) => {
const env = loadEnv(mode, __dirname, '');
const ignoredWatchGlobs = [
'**/dist/**',
'**/dist_check/**',
'**/dist_check_final/**',
'**/dist_check_monster_position/**',
'**/temp*build*/**',
'**/public/generated-character-drafts/**',
'**/public/generated-characters/**',
'**/public/generated-custom-world-scenes/**',
'**/public/generated-qwen-sprites/**',
];
const runtimeServerTarget =
env.NODE_SERVER_TARGET ||
'http://127.0.0.1:8081';
return {
root: __dirname,
envDir: __dirname,
plugins: [
react(),
tailwindcss(),
],
define: {
'process.env.GEMINI_API_KEY': JSON.stringify(env.GEMINI_API_KEY),
},
resolve: {
alias: {
'@': path.resolve(__dirname, '.'),
},
},
optimizeDeps: {
// Only crawl the real app entry so temporary build folders do not get
// treated as extra HTML entrypoints during dependency scanning.
entries: ['index.html'],
},
build: {
chunkSizeWarningLimit: 800,
},
server: {
// HMR is disabled in AI Studio via DISABLE_HMR env var.
// Do not modify; file watching is disabled to prevent flickering during agent edits.
hmr: process.env.DISABLE_HMR !== 'true',
proxy: {
'/generated-character-drafts': {
target: runtimeServerTarget,
changeOrigin: true,
secure: false,
},
'/generated-characters': {
target: runtimeServerTarget,
changeOrigin: true,
secure: false,
},
'/generated-custom-world-scenes': {
target: runtimeServerTarget,
changeOrigin: true,
secure: false,
},
'/generated-qwen-sprites': {
target: runtimeServerTarget,
changeOrigin: true,
secure: false,
},
'/api/auth': {
target: runtimeServerTarget,
changeOrigin: true,
secure: false,
},
'/api/runtime': {
target: runtimeServerTarget,
changeOrigin: true,
secure: false,
},
'/api/editor': {
target: runtimeServerTarget,
changeOrigin: true,
secure: false,
},
'/api/assets': {
target: runtimeServerTarget,
changeOrigin: true,
secure: false,
},
'/api/custom-world': {
target: runtimeServerTarget,
changeOrigin: true,
secure: false,
},
'/api/llm': {
target: runtimeServerTarget,
changeOrigin: true,
secure: false,
},
'/api/ws': {
target: runtimeServerTarget,
changeOrigin: true,
secure: false,
ws: true,
},
},
watch: {
ignored: ignoredWatchGlobs,
},
},
};
});