vite.config.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. import { defineConfig } from 'vite'
  2. import vue from '@vitejs/plugin-vue'
  3. import path from 'path'
  4. import WindiCss from 'vite-plugin-windicss';
  5. import AutoImport from 'unplugin-auto-import/vite'
  6. import Components from 'unplugin-vue-components/vite'
  7. import { VantResolver } from 'unplugin-vue-components/resolvers'
  8. import Icons from 'unplugin-icons/vite'
  9. import IconsResolver from 'unplugin-icons/resolver'
  10. import legacy from '@vitejs/plugin-legacy'
  11. // https://vitejs.dev/config/
  12. export default defineConfig({
  13. base: '/page/new/',
  14. resolve: {
  15. alias: {
  16. '@': path.resolve(__dirname, 'src'),
  17. '~': path.resolve(__dirname, 'src'),
  18. // '~components': path.resolve(__dirname, 'src/components'),
  19. // '~pages': path.resolve(__dirname, 'src/pages'),
  20. // '~utils': path.resolve(__dirname, 'src/utils'),
  21. // '~assets': path.resolve(__dirname, 'src/assets'),
  22. // '~styles': path.resolve(__dirname, 'src/styles'),
  23. // '~lib': path.resolve(__dirname, 'src/lib'),
  24. // '~plugins': path.resolve(__dirname, 'src/plugins'),
  25. // '~router': path.resolve(__dirname, 'src/router'),
  26. // '~store': path.resolve(__dirname, 'src/store'),
  27. // '~config': path.resolve(__dirname, 'src/config'),
  28. // '~api': path.resolve(__dirname, 'src/api'),
  29. // '~constants': path.resolve(__dirname, 'src/constants'),
  30. // '~locales': path.resolve(__dirname, 'src/locales'),
  31. }
  32. },
  33. plugins: [
  34. legacy({
  35. targets: ['defaults', 'ie >= 11', 'chrome 52'], //需要兼容的目标列表,可以设置多个
  36. additionalLegacyPolyfills: ['regenerator-runtime/runtime'],
  37. renderLegacyChunks: true,
  38. polyfills: [
  39. 'es.symbol',
  40. 'es.array.filter',
  41. 'es.promise',
  42. 'es.promise.finally',
  43. 'es/map',
  44. 'es/set',
  45. 'es.array.for-each',
  46. 'es.object.define-properties',
  47. 'es.object.define-property',
  48. 'es.object.get-own-property-descriptor',
  49. 'es.object.get-own-property-descriptors',
  50. 'es.object.keys',
  51. 'es.object.to-string',
  52. 'web.dom-collections.for-each',
  53. 'esnext.global-this',
  54. 'esnext.string.match-all'
  55. ]
  56. }),
  57. vue({
  58. reactivityTransform: true
  59. }),
  60. WindiCss(),
  61. AutoImport({
  62. dts: 'src/auto-imports.d.ts',
  63. imports: ['vue', 'vue/macros', 'vue-router',],
  64. dirs: [
  65. 'src/composables',
  66. 'src/store',
  67. 'src/utils',
  68. ],
  69. resolvers: [VantResolver()],
  70. vueTemplate: true,
  71. }),
  72. Components({
  73. dts: 'src/components.d.ts',
  74. dirs: ['src/components/'],
  75. // allow auto load markdown components under `./src/components/`
  76. extensions: ['vue', 'md'],
  77. // allow auto import and register components used in markdown
  78. include: [/\.vue$/, /\.vue\?vue/, /\.md$/],
  79. resolvers: [VantResolver(), IconsResolver()],
  80. }),
  81. Icons({
  82. compiler: 'vue3',
  83. autoInstall: true,
  84. })
  85. ],
  86. server: {
  87. host: true
  88. },
  89. build: {
  90. // sourcemap:'inline',
  91. rollupOptions: {
  92. output: {
  93. manualChunks: {
  94. axios: ['axios'],
  95. vant: ['vant'],
  96. }
  97. }
  98. }
  99. }
  100. })