vite.config.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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 Icons from 'unplugin-icons/vite'
  8. import IconsResolver from 'unplugin-icons/resolver'
  9. import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
  10. import basicSsl from '@vitejs/plugin-basic-ssl'
  11. import ReactivityTransform from '@vue-macros/reactivity-transform/vite'
  12. // import legacyPlugin from '@vitejs/plugin-legacy'
  13. // https://vitejs.dev/config/
  14. export default defineConfig({
  15. resolve: {
  16. alias: {
  17. '@': path.resolve(__dirname, 'src'),
  18. '~': path.resolve(__dirname, 'src'),
  19. // '~components': path.resolve(__dirname, 'src/components'),
  20. // '~pages': path.resolve(__dirname, 'src/pages'),
  21. // '~utils': path.resolve(__dirname, 'src/utils'),
  22. // '~assets': path.resolve(__dirname, 'src/assets'),
  23. // '~styles': path.resolve(__dirname, 'src/styles'),
  24. // '~lib': path.resolve(__dirname, 'src/lib'),
  25. // '~plugins': path.resolve(__dirname, 'src/plugins'),
  26. // '~router': path.resolve(__dirname, 'src/router'),
  27. // '~store': path.resolve(__dirname, 'src/store'),
  28. // '~config': path.resolve(__dirname, 'src/config'),
  29. // '~api': path.resolve(__dirname, 'src/api'),
  30. // '~constants': path.resolve(__dirname, 'src/constants'),
  31. // '~locales': path.resolve(__dirname, 'src/locales'),
  32. }
  33. },
  34. plugins: [
  35. // legacyPlugin({
  36. // targets: ['chrome 52'], // 需要兼容的目标列表,可以设置多个
  37. // additionalLegacyPolyfills: ['regenerator-runtime/runtime'] // 面向IE11时需要此插件
  38. // }),
  39. ReactivityTransform(),
  40. vue({
  41. reactivityTransform: true
  42. }),
  43. WindiCss(),
  44. basicSsl(),
  45. AutoImport({
  46. dts: 'src/auto-imports.d.ts',
  47. imports: ['vue', 'vue/macros', 'vue-router',],
  48. dirs: [
  49. 'src/composables',
  50. 'src/store',
  51. 'src/utils',
  52. ],
  53. resolvers: [
  54. ElementPlusResolver(),
  55. ],
  56. vueTemplate: true,
  57. // eslint报错解决
  58. eslintrc: {
  59. enabled: false, // Default `false`
  60. filepath: './.eslintrc-auto-import.json', // Default `./.eslintrc-auto-import.json`
  61. globalsPropValue: true, // Default `true`, (true | false | 'readonly' | 'readable' | 'writable' | 'writeable')
  62. },
  63. }),
  64. Components({
  65. dts: 'src/components.d.ts',
  66. dirs: ['src/components/'],
  67. // allow auto load markdown components under `./src/components/`
  68. extensions: ['vue', 'md'],
  69. // allow auto import and register components used in markdown
  70. include: [/\.vue$/, /\.vue\?vue/, /\.md$/],
  71. resolvers: [IconsResolver(), ElementPlusResolver()],
  72. }),
  73. Icons({
  74. compiler: 'vue3',
  75. autoInstall: true,
  76. })
  77. ],
  78. server: {
  79. host: true,
  80. // https: true
  81. },
  82. build: {
  83. assetsInlineLimit: 1024 * 1000,
  84. rollupOptions: {
  85. output: {
  86. manualChunks: {
  87. axios: ['axios'],
  88. }
  89. }
  90. }
  91. },
  92. terserOptions: {
  93. compress: {
  94. drop_console: true,
  95. drop_debugger: true
  96. }
  97. },
  98. })