52 lines
1.3 KiB
TypeScript
52 lines
1.3 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)
|
||
|
},
|
||
|
preview: {
|
||
|
port: 9725
|
||
|
},
|
||
|
build: {
|
||
|
reportCompressedSize: false,
|
||
|
sourcemap: viteEnv.VITE_SOURCE_MAP === 'Y',
|
||
|
commonjsOptions: {
|
||
|
ignoreTryCatch: false
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
});
|