vite.config.ts 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. import process from 'node:process'
  2. import path from 'node:path'
  3. import Uni from '@dcloudio/vite-plugin-uni'
  4. import UniHelperComponents from '@uni-helper/vite-plugin-uni-components'
  5. import { WotResolver } from '@uni-helper/vite-plugin-uni-components/resolvers'
  6. import UniHelperLayouts from '@uni-helper/vite-plugin-uni-layouts'
  7. import UniHelperManifest from '@uni-helper/vite-plugin-uni-manifest'
  8. import pagesJson from '@uni-ku/pages-json/vite'
  9. import Optimization from '@uni-ku/bundle-optimizer'
  10. import UniKuRoot from '@uni-ku/root'
  11. import AutoImport from 'unplugin-auto-import/vite'
  12. import { hookUniPlatform } from '@uni-ku/pages-json/hooks'
  13. import { defineConfig } from 'vite'
  14. // https://vitejs.dev/config/
  15. export default async () => {
  16. const UnoCSS = (await import('unocss/vite')).default
  17. return defineConfig({
  18. optimizeDeps: {
  19. exclude: process.env.NODE_ENV === 'development' ? ['wot-design-uni', 'uni-echarts'] : [],
  20. },
  21. plugins: [
  22. // https://github.com/uni-helper/vite-plugin-uni-manifest
  23. UniHelperManifest(),
  24. // https://github.com/uni-helper/vite-plugin-uni-pages
  25. pagesJson({
  26. dts: path.resolve(process.cwd(), 'src/uni-pages.d.ts'),
  27. pagesDir: 'pages',
  28. subPackageDirs: [
  29. 'subPack-xsb',
  30. 'subPack-common',
  31. 'subPack-smqjh',
  32. 'subPack-charge',
  33. ],
  34. /**
  35. * 排除的页面,相对于 dir 和 subPackages
  36. * @default []
  37. */
  38. exclude: ['**/components/**/*.*'],
  39. hooks: [
  40. hookUniPlatform,
  41. // 简单调试 hook:在生成时打印上下文,帮助定位问题
  42. (ctx) => {
  43. console.log('[pages-json] pages type:', Object.prototype.toString.call(ctx.pages))
  44. console.log('[pages-json] pages count:', Array.isArray(ctx.pages) ? ctx.pages.length : 'not array')
  45. console.log('[pages-json] output dts:', path.resolve(process.cwd(), 'src/uni-pages.d.ts'))
  46. },
  47. ],
  48. }),
  49. // https://github.com/uni-helper/vite-plugin-uni-layouts
  50. UniHelperLayouts(),
  51. // https://github.com/uni-helper/vite-plugin-uni-components
  52. UniHelperComponents({
  53. resolvers: [WotResolver()],
  54. dts: 'src/components.d.ts',
  55. dirs: ['src/components'],
  56. directoryAsNamespace: true,
  57. }),
  58. // https://github.com/uni-ku/root
  59. UniKuRoot(),
  60. Uni(),
  61. // https://github.com/uni-ku/bundle-optimizer
  62. Optimization({
  63. logger: true,
  64. }),
  65. // https://github.com/antfu/unplugin-auto-import
  66. AutoImport({
  67. imports: ['vue', '@vueuse/core', 'pinia', 'uni-app', {
  68. from: 'uni-mini-router',
  69. imports: ['createRouter', 'useRouter', 'useRoute'],
  70. }, {
  71. from: 'wot-design-uni',
  72. imports: ['useToast', 'useMessage', 'useNotify', 'CommonUtil'],
  73. }, {
  74. from: 'alova/client',
  75. imports: ['usePagination', 'useRequest'],
  76. }],
  77. dts: 'src/auto-imports.d.ts',
  78. dirs: ['src/composables', 'src/store', 'src/utils', 'src/api', 'src/subPack-xsb/store-xsb'],
  79. vueTemplate: true,
  80. }),
  81. // https://github.com/antfu/unocss
  82. // see unocss.config.ts for config
  83. UnoCSS(),
  84. ],
  85. })
  86. }