__unconfig_vite.config.ts 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. let __unconfig_data;
  2. let __unconfig_stub = function (data = {}) { __unconfig_data = data };
  3. __unconfig_stub.default = (data = {}) => { __unconfig_data = data };
  4. import path from 'path'
  5. import { defineConfig } from 'vite'
  6. import vue from '@vitejs/plugin-vue'
  7. import WindiCss from 'vite-plugin-windicss'
  8. import AutoImport from 'unplugin-auto-import/vite'
  9. import Components from 'unplugin-vue-components/vite'
  10. import { ElementPlusResolver, VantResolver } from 'unplugin-vue-components/resolvers'
  11. import Icons from 'unplugin-icons/vite'
  12. import IconsResolver from 'unplugin-icons/resolver'
  13. import ConditionalCompile from './plugins/vite-plugin-conditional-compile'
  14. import basicSsl from '@vitejs/plugin-basic-ssl'
  15. import topLevelAwait from 'vite-plugin-top-level-await'
  16. import legacy from '@vitejs/plugin-legacy'
  17. // https://vitejs.dev/config/
  18. const __unconfig_default = defineConfig({
  19. resolve: {
  20. alias: {
  21. '@': path.resolve(__dirname, 'src'),
  22. '~': path.resolve(__dirname, 'src'),
  23. // '~components': path.resolve(__dirname, 'src/components'),
  24. // '~pages': path.resolve(__dirname, 'src/pages'),
  25. // '~utils': path.resolve(__dirname, 'src/utils'),
  26. // '~assets': path.resolve(__dirname, 'src/assets'),
  27. // '~styles': path.resolve(__dirname, 'src/styles'),
  28. // '~lib': path.resolve(__dirname, 'src/lib'),
  29. // '~plugins': path.resolve(__dirname, 'src/plugins'),
  30. // '~router': path.resolve(__dirname, 'src/router'),
  31. // '~store': path.resolve(__dirname, 'src/store'),
  32. // '~config': path.resolve(__dirname, 'src/config'),
  33. // '~api': path.resolve(__dirname, 'src/api'),
  34. // '~constants': path.resolve(__dirname, 'src/constants'),
  35. // '~locales': path.resolve(__dirname, 'src/locales'),
  36. },
  37. },
  38. css: {
  39. preprocessorOptions: {
  40. scss: {
  41. additionalData: '@use "./element.scss" as *;',
  42. },
  43. },
  44. },
  45. plugins: [
  46. legacy({
  47. targets: ['defaults', 'ie >= 11', 'chrome 52'], //需要兼容的目标列表,可以设置多个
  48. additionalLegacyPolyfills: ['regenerator-runtime/runtime'],
  49. renderLegacyChunks: true,
  50. polyfills: [
  51. 'es.symbol',
  52. 'es.array.filter',
  53. 'es.promise',
  54. 'es.promise.finally',
  55. 'es/map',
  56. 'es/set',
  57. 'es.array.for-each',
  58. 'es.object.define-properties',
  59. 'es.object.define-property',
  60. 'es.object.get-own-property-descriptor',
  61. 'es.object.get-own-property-descriptors',
  62. 'es.object.keys',
  63. 'es.object.to-string',
  64. 'web.dom-collections.for-each',
  65. 'esnext.global-this',
  66. 'esnext.string.match-all'
  67. ]
  68. }),
  69. topLevelAwait({
  70. // The export name of top-level await promise for each chunk module
  71. promiseExportName: '__tla',
  72. // The function to generate import names of top-level await promise in each chunk module
  73. promiseImportName: i => `__tla_${i}`
  74. }),
  75. basicSsl(),
  76. ConditionalCompile(),
  77. vue({
  78. reactivityTransform: true,
  79. }),
  80. WindiCss(),
  81. AutoImport({
  82. // dts: 'src/auto-imports.d.ts',
  83. imports: ['vue', 'vue/macros', 'vue-router'],
  84. dirs: [
  85. 'src/composables',
  86. // 'src/store',
  87. 'src/utils',
  88. ],
  89. resolvers: [ElementPlusResolver(),VantResolver()],
  90. vueTemplate: true,
  91. eslintrc: {
  92. enabled: true,
  93. // enabled: false, // Default `false`
  94. // filepath: './.eslintrc-auto-import.json', // Default `./.eslintrc-auto-import.json`
  95. // globalsPropValue: true, // Default `true`, (true | false | 'readonly' | 'readable' | 'writable' | 'writeable')
  96. },
  97. }),
  98. Components({
  99. // dts: 'src/components.d.ts',
  100. dirs: ['src/components/'],
  101. // allow auto load markdown components under `./src/components/`
  102. extensions: ['vue', 'md'],
  103. // allow auto import and register components used in markdown
  104. include: [/\.vue$/, /\.vue\?vue/, /\.md$/],
  105. resolvers: [ElementPlusResolver({ importStyle: 'sass' }), IconsResolver(),VantResolver()],
  106. }),
  107. Icons({
  108. compiler: 'vue3',
  109. autoInstall: true,
  110. }),
  111. ],
  112. server: {
  113. host: true,
  114. port: 5230,
  115. https: true,
  116. },
  117. build: {
  118. // rollupOptions: {
  119. // output: {
  120. // manualChunks: {
  121. // axios: ['axios'],
  122. // },
  123. // },
  124. // },
  125. },
  126. })
  127. if (typeof __unconfig_default === "function") __unconfig_default(...[{"command":"serve","mode":"development"}]);export default __unconfig_data;