vite.config.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import { fileURLToPath, URL } from 'node:url'
  2. import { defineConfig, loadEnv } from 'vite'
  3. import vue from '@vitejs/plugin-vue'
  4. import AutoImport from 'unplugin-auto-import/vite'
  5. import Components from 'unplugin-vue-components/vite'
  6. import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
  7. import vueJsx from '@vitejs/plugin-vue-jsx'
  8. // https://vitejs.dev/config/
  9. export default defineConfig(({ command, mode }) => {
  10. process.env = { ...process.env, ...loadEnv(mode, process.cwd()) }
  11. const theme = process.env.VITE_THEME || 'default'
  12. return {
  13. base: process.env.VITE_BASE_URL,
  14. build: {
  15. sourcemap: false
  16. },
  17. plugins: [
  18. vue(),
  19. vueJsx(),
  20. AutoImport({
  21. resolvers: [ElementPlusResolver()]
  22. }),
  23. Components({
  24. resolvers: [ElementPlusResolver()]
  25. })
  26. ],
  27. resolve: {
  28. alias: {
  29. '@': fileURLToPath(new URL('./src', import.meta.url))
  30. }
  31. },
  32. server: {
  33. host: '0.0.0.0'
  34. },
  35. define: {
  36. 'process.env': process.env
  37. },
  38. css: {
  39. preprocessorOptions: {
  40. scss: {
  41. additionalData: `@use "@/styles/themes/${theme}/index.scss";
  42. @use "@/styles/themes/${theme}/dark.scss";`
  43. }
  44. }
  45. },
  46. html: {
  47. }
  48. }
  49. })