vite.config.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /**
  2. * vite 配置文件
  3. */
  4. import { loadEnv } from 'vite';
  5. import { resolve } from 'path';
  6. import vue from '@vitejs/plugin-vue';
  7. import vueJsx from '@vitejs/plugin-vue-jsx';
  8. import PurgeIcons from 'vite-plugin-purge-icons';
  9. import viteCompression from 'vite-plugin-compression';
  10. import { createSvgIconsPlugin } from 'vite-plugin-svg-icons';
  11. import UnoCSS from 'unocss/vite';
  12. // https://vitejs.dev/config/
  13. export default (command, mode) => {
  14. const env = loadEnv(mode, __dirname, 'SHEEP_');
  15. return {
  16. base: './',
  17. envPrefix: 'SHEEP_',
  18. plugins: [
  19. vue(),
  20. vueJsx(),
  21. UnoCSS(),
  22. viteCompression({ verbose: false }),
  23. createSvgIconsPlugin({
  24. iconDirs: [resolve(__dirname, './src/assets/svg')],
  25. symbolId: 'sa-[dir]-[name]',
  26. }),
  27. PurgeIcons(),
  28. ],
  29. resolve: {
  30. alias: {
  31. '@': resolve(__dirname, './src'),
  32. },
  33. },
  34. css: {
  35. preprocessorOptions: {
  36. scss: {},
  37. },
  38. },
  39. server: {
  40. host: true,
  41. open: true,
  42. port: env.SHEEP_DEV_PORT,
  43. hmr: {
  44. overlay: true,
  45. },
  46. },
  47. build: {
  48. chunkSizeWarningLimit: 2000,
  49. sourcemap: false,
  50. },
  51. preview: {
  52. port: env.SHEEP_PREVIEW_PORT,
  53. },
  54. };
  55. };