vite.config.ts 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import process from 'node:process'
  2. import { defineConfig } from 'vite'
  3. import Uni from '@dcloudio/vite-plugin-uni'
  4. import UniHelperManifest from '@uni-helper/vite-plugin-uni-manifest'
  5. import UniHelperPages from '@uni-helper/vite-plugin-uni-pages'
  6. import UniHelperLayouts from '@uni-helper/vite-plugin-uni-layouts'
  7. import UniHelperComponents from '@uni-helper/vite-plugin-uni-components'
  8. import AutoImport from 'unplugin-auto-import/vite'
  9. import { WotResolver } from '@uni-helper/vite-plugin-uni-components/resolvers'
  10. import UniKuRoot from '@uni-ku/root'
  11. import { UniEchartsResolver } from 'uni-echarts/resolver'
  12. import Optimization from '@uni-ku/bundle-optimizer'
  13. // https://vitejs.dev/config/
  14. export default async () => {
  15. const UnoCSS = (await import('unocss/vite')).default
  16. return defineConfig({
  17. optimizeDeps: {
  18. exclude: process.env.NODE_ENV === 'development' ? ['wot-design-uni', 'uni-echarts'] : [],
  19. },
  20. plugins: [
  21. // https://github.com/uni-helper/vite-plugin-uni-manifest
  22. UniHelperManifest(),
  23. // https://github.com/uni-helper/vite-plugin-uni-pages
  24. UniHelperPages({
  25. dts: 'src/uni-pages.d.ts',
  26. /**
  27. * 排除的页面,相对于 dir 和 subPackages
  28. * @default []
  29. */
  30. exclude: ['**/components/**/*.*'],
  31. }),
  32. // https://github.com/uni-helper/vite-plugin-uni-layouts
  33. UniHelperLayouts(),
  34. // https://github.com/uni-helper/vite-plugin-uni-components
  35. UniHelperComponents({
  36. resolvers: [WotResolver(), UniEchartsResolver()],
  37. dts: 'src/components.d.ts',
  38. dirs: ['src/components', 'src/business'],
  39. directoryAsNamespace: true,
  40. }),
  41. // https://github.com/uni-ku/root
  42. UniKuRoot(),
  43. Uni(),
  44. // https://github.com/uni-ku/bundle-optimizer
  45. Optimization({
  46. logger: true,
  47. }),
  48. // https://github.com/antfu/unplugin-auto-import
  49. AutoImport({
  50. imports: ['vue', '@vueuse/core', 'pinia', 'uni-app', {
  51. from: 'uni-mini-router',
  52. imports: ['createRouter', 'useRouter', 'useRoute'],
  53. }, {
  54. from: 'wot-design-uni',
  55. imports: ['useToast', 'useMessage', 'useNotify', 'CommonUtil'],
  56. }, {
  57. from: 'alova/client',
  58. imports: ['usePagination', 'useRequest'],
  59. }],
  60. dts: 'src/auto-imports.d.ts',
  61. dirs: ['src/composables', 'src/store', 'src/utils', 'src/api'],
  62. vueTemplate: true,
  63. }),
  64. // https://github.com/antfu/unocss
  65. // see unocss.config.ts for config
  66. UnoCSS(),
  67. ],
  68. })
  69. }