vite.config.ts 2.1 KB

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