import process from 'node:process'; import { URL, fileURLToPath } from 'node:url'; import { defineConfig, loadEnv } from 'vite'; import { setupVitePlugins } from './build/plugins'; import { createViteProxy } from './build/config'; export default defineConfig(configEnv => { const viteEnv = loadEnv(configEnv.mode, process.cwd()) as unknown as Env.ImportMeta; return { base: viteEnv.VITE_BASE_URL, resolve: { alias: { '~': fileURLToPath(new URL('./', import.meta.url)), '@': fileURLToPath(new URL('./src', import.meta.url)) } }, css: { preprocessorOptions: { scss: { additionalData: `@use "./src/styles/scss/global.scss" as *;` } } }, plugins: setupVitePlugins(viteEnv), server: { host: '0.0.0.0', port: 8085, open: false, proxy: createViteProxy(viteEnv, configEnv.command === 'serve'), fs: { cachedChecks: false, strict: false // 添加这个配置 } }, preview: { port: 9725 }, build: { reportCompressedSize: false, sourcemap: viteEnv.VITE_SOURCE_MAP === 'Y', commonjsOptions: { ignoreTryCatch: false }, // 添加以下配置 rollupOptions: { output: { manualChunks: undefined, // 禁用代码分割 chunkFileNames: 'assets/js/[name]-[hash].js', entryFileNames: 'assets/js/[name]-[hash].js', assetFileNames: 'assets/[ext]/[name]-[hash].[ext]' } }, // 添加以下配置 chunkSizeWarningLimit: 2000, minify: 'terser', terserOptions: { compress: { drop_console: true, drop_debugger: true } } } }; });