Files
vue-ts-example/vite.config.ts
严浩 3883fad98d
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 1m25s
/ depcheck (push) Successful in 1m49s
/ playwright (push) Successful in 3m47s
feat: 重构 Vite 配置,提取插件配置到单独文件并简化 tsconfig 配置
2024-11-25 16:44:36 +08:00

40 lines
1.2 KiB
TypeScript

import { fileURLToPath, URL } from 'node:url';
import { createSplitChunkOutput } from 'utils4u/rollup';
import { createViteProxy } from 'utils4u/vite';
import { defineConfig, loadEnv } from 'vite';
import { Plugins } from './vite.config.plugins';
// https://vitejs.dev/config/
export default defineConfig(({ mode, command }) => {
const isBuild = command === 'build';
const env = loadEnv(mode, process.cwd());
return {
base: env.VITE_BASE,
plugins: Plugins(),
define: {
$__DEV__: JSON.stringify(!isBuild),
},
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url)),
},
},
server: {
proxy: createViteProxy(),
},
build: {
sourcemap: mode !== 'production' || env.VITE_SOURCE_MAP === 'true',
rollupOptions: {
onwarn: (warning, warn) => {
if (warning.code === 'EMPTY_BUNDLE') return;
if (warning.code === 'EVAL' && warning.id?.includes('node_modules/eruda')) return;
if (warning.code === 'EVAL' && warning.id?.includes('node_modules/mockjs')) return;
warn(warning);
},
output: env.VITE_SPLIT_CHUNKS === 'true' ? createSplitChunkOutput() : undefined,
},
},
};
});