vite.config.ts 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. import path from 'path'
  2. import { defineConfig } from 'vite'
  3. import vue from '@vitejs/plugin-vue'
  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 { ElementPlusResolver, VantResolver } from 'unplugin-vue-components/resolvers'
  8. import Icons from 'unplugin-icons/vite'
  9. import IconsResolver from 'unplugin-icons/resolver'
  10. import ConditionalCompile from './plugins/vite-plugin-conditional-compile'
  11. import basicSsl from '@vitejs/plugin-basic-ssl'
  12. // https://vitejs.dev/config/
  13. export default defineConfig({
  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. css: {
  34. preprocessorOptions: {
  35. scss: {
  36. additionalData: '@use "./element.scss" as *;',
  37. },
  38. },
  39. },
  40. plugins: [
  41. basicSsl(),
  42. ConditionalCompile(),
  43. vue({
  44. reactivityTransform: true,
  45. }),
  46. WindiCss(),
  47. AutoImport({
  48. // dts: 'src/auto-imports.d.ts',
  49. imports: ['vue', 'vue/macros', 'vue-router'],
  50. dirs: [
  51. 'src/composables',
  52. // 'src/store',
  53. 'src/utils',
  54. ],
  55. resolvers: [ElementPlusResolver(),VantResolver()],
  56. vueTemplate: true,
  57. eslintrc: {
  58. enabled: true,
  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: [ElementPlusResolver({ importStyle: 'sass' }), IconsResolver(),VantResolver()],
  72. }),
  73. Icons({
  74. compiler: 'vue3',
  75. autoInstall: true,
  76. }),
  77. ],
  78. server: {
  79. host: true,
  80. port: 5230,
  81. https: true,
  82. },
  83. build: {
  84. // rollupOptions: {
  85. // output: {
  86. // manualChunks: {
  87. // axios: ['axios'],
  88. // },
  89. // },
  90. // },
  91. },
  92. })