vite.config.ts 1.8 KB

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