vite.config.ts 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import { defineConfig } from 'vite'
  2. import vue from '@vitejs/plugin-vue'
  3. import { resolve } from 'path'
  4. import Components from 'unplugin-vue-components/vite'
  5. import { VantResolver } from 'unplugin-vue-components/resolvers'
  6. import AutoImport from 'unplugin-auto-import/vite'
  7. import VueSetupExtend from 'vite-plugin-vue-setup-extend'
  8. import vueJsx from '@vitejs/plugin-vue-jsx'
  9. import { VueAmapResolver } from '@vuemap/unplugin-resolver'
  10. import userConfig from './config'
  11. import { visualizer } from 'rollup-plugin-visualizer'
  12. // https://vitejs.dev/config/
  13. export default defineConfig({
  14. css: {
  15. preprocessorOptions: {
  16. scss: {
  17. additionalData: `@import "./src/assets/css/vant.scss";`
  18. }
  19. }
  20. },
  21. server: {
  22. port: 3003,
  23. host: '0.0.0.0',
  24. hmr: true,
  25. },
  26. define: {
  27. 'process.env':
  28. process.env.NODE_ENV === 'production' ? userConfig.buildEnv : userConfig.devEnv,
  29. },
  30. plugins: [
  31. vue(),
  32. vueJsx(),
  33. VueSetupExtend(),
  34. Components({
  35. resolvers: [VantResolver(), VueAmapResolver()],
  36. }),
  37. AutoImport({
  38. imports: ['vue', 'vue-router', 'vue-i18n'],
  39. dts: 'src/auto-import.d.ts',
  40. resolvers: [VueAmapResolver()],
  41. }),
  42. // visualizer({ open: true }),
  43. ],
  44. resolve: {
  45. alias: {
  46. '@': resolve(__dirname, 'src'),
  47. '@pages': resolve(__dirname, 'src/pages'),
  48. '@components': resolve(__dirname, 'src/components'),
  49. '@layout': resolve(__dirname, 'src/layout'),
  50. '@api': resolve(__dirname, 'src/api'),
  51. '@utils': resolve(__dirname, 'src/utils'),
  52. '@store': resolve(__dirname, 'src/store'),
  53. '@assets': resolve(__dirname, 'src/assets'),
  54. '@i18n': resolve(__dirname, 'src/i18n'),
  55. '@type': resolve(__dirname, 'src/type'),
  56. },
  57. },
  58. build: {
  59. sourcemap: false,
  60. cssCodeSplit: true,
  61. reportCompressedSize: false,
  62. rollupOptions: {
  63. output: {
  64. manualChunks(id) {
  65. if (id.includes('node_modules') && !id.includes('vant')) {
  66. return id.toString().split('node_modules/')[1].split('/')[0].toString()
  67. }
  68. },
  69. },
  70. },
  71. },
  72. })