vite.config.ts 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import path from 'path';
  2. import { defineConfig, loadEnv } from 'vite';
  3. import react from '@vitejs/plugin-react';
  4. import { resolve } from 'path';
  5. export default defineConfig(({ mode }) => {
  6. const env = loadEnv(mode, process.cwd())
  7. return {
  8. base: env.VITE_BASE_PATH,
  9. server: {
  10. port: 3000,
  11. host: '0.0.0.0',
  12. },
  13. plugins: [react()],
  14. build: {
  15. rollupOptions: {
  16. input: {
  17. main: resolve(__dirname, '/index.html'), // React SPA 入口
  18. }
  19. }
  20. },
  21. define: {
  22. 'process.env.API_KEY': JSON.stringify(env.GEMINI_API_KEY),
  23. 'process.env.GEMINI_API_KEY': JSON.stringify(env.GEMINI_API_KEY)
  24. },
  25. resolve: {
  26. alias: {
  27. // map @ to the src directory so imports like '@/router/routes' resolve correctly
  28. '@': path.resolve(__dirname, 'src'),
  29. }
  30. },
  31. css: {
  32. /**
  33. * 如果启用了这个选项,那么 CSS 预处理器会尽可能在 worker 线程中运行;即通过多线程运行 CSS 预处理器,从而极大提高其处理速度
  34. * https://cn.vitejs.dev/config/shared-options#css-preprocessormaxworkers
  35. */
  36. preprocessorMaxWorkers: true,
  37. /**
  38. * 建议只用来嵌入 SCSS 的变量声明文件,嵌入后全局可用
  39. * 该选项可以用来为每一段样式内容添加额外的代码。但是要注意,如果你添加的是实际的样式而不仅仅是变量,那这些样式在最终的产物中会重复
  40. * https://cn.vitejs.dev/config/shared-options.html#css-preprocessoroptions-extension-additionaldata
  41. */
  42. preprocessorOptions: {
  43. scss: {
  44. // 如果您的终端提示 legacy JS API Deprecation Warning, 您可以配置以下代码在 vite.config.ts 中
  45. // 使用现代 CSS API,避免 legacy warning
  46. api: 'modern-compiler',
  47. // 全局引入变量文件,使用路径别名 @ 表示 src 目录
  48. additionalData: `@use "@/styles/variables.scss" as *;`,
  49. },
  50. },
  51. },
  52. };
  53. });