vite.config.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import { defineConfig } from 'vite'
  2. import vue from '@vitejs/plugin-vue'
  3. import eslint from 'vite-plugin-eslint'
  4. import viteCompression from 'vite-plugin-compression'
  5. import path from 'path'
  6. // https://vitejs.dev/config/
  7. export default defineConfig({
  8. base: './',
  9. resolve: {
  10. alias: {
  11. /*
  12. 路径别名
  13. 若为文件系统路径必须是绝对路径的形式,否则将以别名原样呈现,不会解析为文件系统路径路径
  14. */
  15. '@': path.resolve(__dirname, './src')
  16. }
  17. },
  18. plugins: [vue(), viteCompression(), eslint({ fix: true, include: ['**/*.ts', '**/*.vue'] })],
  19. server: {
  20. host: '0.0.0.0',
  21. port: 8585,
  22. open: true,
  23. strictPort: false,
  24. https: false
  25. },
  26. esbuild: {
  27. drop: ['console', 'debugger'] //build 移除打印
  28. },
  29. build: {
  30. rollupOptions: {
  31. input: {
  32. index: path.resolve(__dirname, 'index.html')
  33. },
  34. output: { // 静态资源分类打包
  35. chunkFileNames: 'js/[hash].js',
  36. entryFileNames: 'js/[hash].js',
  37. assetFileNames: 'assets/[ext]/[hash].[ext]',
  38. // 拆分node_modules包
  39. manualChunks: (id: any) => {
  40. if (id.includes("node_modules")) {
  41. return id.toString().split("node_modules/")[1].split("/")[0].toString()
  42. }
  43. }
  44. }
  45. }
  46. },
  47. define: {
  48. __VUE_OPTIONS_API__: false
  49. }
  50. })