vite.config.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. import UnoCSS from 'unocss/vite';
  13. // https://vitejs.dev/config/
  14. export default (command, mode) => {
  15. const env = loadEnv(mode, __dirname, 'SHEEP_');
  16. return {
  17. base: './',
  18. envPrefix: 'SHEEP_',
  19. plugins: [
  20. vue(),
  21. vueJsx(),
  22. UnoCSS(),
  23. viteCompression({ verbose: false }),
  24. createSvgIconsPlugin({
  25. iconDirs: [resolve(__dirname, './src/assets/svg')],
  26. symbolId: 'sa-[dir]-[name]',
  27. }),
  28. PurgeIcons(),
  29. ],
  30. resolve: {
  31. alias: {
  32. '@': resolve(__dirname, './src'),
  33. },
  34. },
  35. css: {
  36. preprocessorOptions: {
  37. scss: {},
  38. },
  39. },
  40. server: {
  41. host: true,
  42. open: true,
  43. port: env.SHEEP_DEV_PORT,
  44. hmr: {
  45. overlay: true,
  46. },
  47. },
  48. build: {
  49. chunkSizeWarningLimit: 2000,
  50. sourcemap: false,
  51. },
  52. preview: {
  53. port: env.SHEEP_PREVIEW_PORT,
  54. },
  55. };
  56. };