vite.config.ts 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import path from 'path'
  2. import type { PluginOption } from 'vite'
  3. import { defineConfig, loadEnv } from 'vite'
  4. import vue from '@vitejs/plugin-vue'
  5. import { VitePWA } from 'vite-plugin-pwa'
  6. import viteImagemin from 'vite-plugin-imagemin'
  7. function setupPlugins(env: ImportMetaEnv): PluginOption[] {
  8. return [
  9. vue(),
  10. viteImagemin({
  11. gifsicle: {
  12. optimizationLevel: 7,
  13. interlaced: false
  14. },
  15. optipng: false,
  16. mozjpeg: {
  17. quality: 80
  18. },
  19. pngquant: {
  20. quality: [0.5, 0.9],
  21. speed: 1
  22. },
  23. svgo: {
  24. plugins: [
  25. {
  26. name: 'removeViewBox'
  27. },
  28. {
  29. name: 'removeEmptyAttrs',
  30. active: false
  31. }
  32. ]
  33. },
  34. webp: false
  35. }),
  36. env.VITE_GLOB_APP_PWA === 'true' &&
  37. VitePWA({
  38. injectRegister: 'auto',
  39. manifest: {
  40. name: 'chatGPT',
  41. short_name: 'chatGPT',
  42. icons: [
  43. { src: 'pwa-192x192.png', sizes: '192x192', type: 'image/png' },
  44. { src: 'pwa-512x512.png', sizes: '512x512', type: 'image/png' }
  45. ]
  46. }
  47. })
  48. ]
  49. }
  50. export default defineConfig(env => {
  51. const viteEnv = loadEnv(env.mode, process.cwd()) as unknown as ImportMetaEnv
  52. return {
  53. base: viteEnv.VITE_GLOB_APP_PUBLIC_PATH,
  54. resolve: {
  55. alias: {
  56. '@': path.resolve(process.cwd(), 'src')
  57. }
  58. },
  59. plugins: setupPlugins(viteEnv),
  60. server: {
  61. host: '0.0.0.0',
  62. port: 5004,
  63. open: false
  64. },
  65. css: {
  66. preprocessorOptions: {
  67. less: {
  68. javascriptEnabled: true,
  69. additionalData: '@import "@/styles/common.less";'
  70. }
  71. }
  72. },
  73. build: {
  74. reportCompressedSize: false,
  75. sourcemap: false,
  76. assetsInlineLimit: 0,
  77. commonjsOptions: {
  78. ignoreTryCatch: false
  79. }
  80. }
  81. }
  82. })