vite.config.ts 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import process from 'node:process';
  2. import { URL, fileURLToPath } from 'node:url';
  3. import { defineConfig, loadEnv } from 'vite';
  4. import { setupVitePlugins } from './build/plugins';
  5. import { createViteProxy, getBuildTime } from './build/config';
  6. export default defineConfig(configEnv => {
  7. const viteEnv = loadEnv(configEnv.mode, process.cwd()) as unknown as Env.ImportMeta;
  8. const buildTime = getBuildTime();
  9. const enableProxy = configEnv.command === 'serve' && !configEnv.isPreview;
  10. return {
  11. base: viteEnv.VITE_BASE_URL,
  12. resolve: {
  13. alias: {
  14. '~': fileURLToPath(new URL('./', import.meta.url)),
  15. '@': fileURLToPath(new URL('./src', import.meta.url))
  16. }
  17. },
  18. css: {
  19. preprocessorOptions: {
  20. scss: {
  21. api: 'modern-compiler',
  22. additionalData: `@use "@/styles/scss/global.scss" as *;`
  23. }
  24. }
  25. },
  26. plugins: setupVitePlugins(viteEnv, buildTime),
  27. define: {
  28. BUILD_TIME: JSON.stringify(buildTime)
  29. },
  30. server: {
  31. host: '0.0.0.0',
  32. port: 9527,
  33. open: true,
  34. proxy: createViteProxy(viteEnv, enableProxy)
  35. },
  36. preview: {
  37. port: 9725
  38. },
  39. build: {
  40. reportCompressedSize: false,
  41. sourcemap: viteEnv.VITE_SOURCE_MAP === 'Y',
  42. commonjsOptions: {
  43. ignoreTryCatch: false
  44. }
  45. }
  46. };
  47. });