vite.config.ts 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import { defineConfig,UserConfig, ConfigEnv } from 'vite'
  2. import vue from '@vitejs/plugin-vue'
  3. import { resolve } from "path";
  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 vueSetupExtend from 'vite-plugin-vue-setup-extend-plus'; // setup语法糖设置name
  8. import viteCompression from "vite-plugin-compression"; //开启gzip打包压缩
  9. export default defineConfig(({ command, mode }: ConfigEnv): UserConfig => {
  10. return {
  11. plugins: [vue(),
  12. vueSetupExtend(),
  13. AutoImport({
  14. resolvers: [ElementPlusResolver()],
  15. }),
  16. Components({
  17. resolvers: [ElementPlusResolver()],
  18. }),
  19. viteCompression()
  20. ],
  21. base: command === 'serve' ? './' : '/',
  22. server: {
  23. host: '0.0.0.0',
  24. port: 8113,
  25. open: true,
  26. strictPort: false,
  27. // proxy: {}
  28. },
  29. root: process.cwd(),
  30. resolve: {
  31. alias: {
  32. "@": resolve(__dirname, "./src"),
  33. "components": resolve(__dirname, "./src/components"),
  34. "api": resolve(__dirname, "./src/api"),
  35. },
  36. },
  37. css: { preprocessorOptions: { css: { charset: false } } },
  38. build: {
  39. outDir: 'dist',
  40. sourcemap: false,
  41. chunkSizeWarningLimit: 1500,
  42. rollupOptions: {
  43. output: {
  44. entryFileNames: `assets/[name].[hash].js`,
  45. chunkFileNames: `assets/[name].[hash].js`,
  46. assetFileNames: `assets/[name].[hash].[ext]`,
  47. compact: true,
  48. manualChunks: {
  49. vue: ['vue', 'vue-router', 'pinia']
  50. },
  51. },
  52. },
  53. minify: 'terser',
  54. terserOptions: {
  55. //生产环境时移除console和debugger
  56. compress: {
  57. drop_console: false,
  58. drop_debugger: true
  59. }
  60. }
  61. },
  62. }
  63. })