60 lines
1.6 KiB
TypeScript
60 lines
1.6 KiB
TypeScript
import process from 'node:process';
|
||
import { URL, fileURLToPath } from 'node:url';
|
||
import { defineConfig, loadEnv } from 'vite';
|
||
import { setupVitePlugins } from './build/plugins';
|
||
import { createViteProxy, getBuildTime } from './build/config';
|
||
|
||
export default defineConfig(configEnv => {
|
||
const viteEnv = loadEnv(configEnv.mode, process.cwd()) as unknown as Env.ImportMeta;
|
||
|
||
const buildTime = getBuildTime();
|
||
|
||
const enableProxy = configEnv.command === 'serve' && !configEnv.isPreview;
|
||
|
||
return {
|
||
base: viteEnv.VITE_BASE_URL,
|
||
resolve: {
|
||
alias: {
|
||
'~': fileURLToPath(new URL('./', import.meta.url)),
|
||
'@': fileURLToPath(new URL('./src', import.meta.url))
|
||
}
|
||
},
|
||
css: {
|
||
preprocessorOptions: {
|
||
scss: {
|
||
api: 'modern-compiler',
|
||
additionalData: `@use "@/styles/scss/global.scss" as *;`
|
||
}
|
||
}
|
||
},
|
||
plugins: setupVitePlugins(viteEnv, buildTime),
|
||
define: {
|
||
BUILD_TIME: JSON.stringify(buildTime)
|
||
},
|
||
server: {
|
||
host: '0.0.0.0',
|
||
port: 9527,
|
||
open: true,
|
||
proxy: {
|
||
...createViteProxy(viteEnv, enableProxy),
|
||
// ai-server OpenApi(本地 docker ai-server-ai-1,:12333)
|
||
'/proxy-ai': {
|
||
target: process.env.AI_SERVER_URL || 'http://127.0.0.1:12333',
|
||
changeOrigin: true,
|
||
rewrite: p => p.replace(/^\/proxy-ai/, '')
|
||
}
|
||
}
|
||
},
|
||
preview: {
|
||
port: 9725
|
||
},
|
||
build: {
|
||
reportCompressedSize: false,
|
||
sourcemap: viteEnv.VITE_SOURCE_MAP === 'Y',
|
||
commonjsOptions: {
|
||
ignoreTryCatch: false
|
||
}
|
||
}
|
||
};
|
||
});
|