vite.config.ts 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. import process from 'node:process'
  2. import Uni from '@uni-helper/plugin-uni'
  3. import { isMpWeixin } from '@uni-helper/uni-env'
  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 Optimization from '@uni-ku/bundle-optimizer'
  9. import { hookUniPlatform } from '@uni-ku/pages-json/hooks'
  10. import pagesJson from '@uni-ku/pages-json/vite'
  11. import UniKuRoot from '@uni-ku/root'
  12. import { UniEchartsResolver } from 'uni-echarts/resolver'
  13. import { UniEcharts } from 'uni-echarts/vite'
  14. import UnoCSS from 'unocss/vite'
  15. import AutoImport from 'unplugin-auto-import/vite'
  16. import { defineConfig, loadEnv } from 'vite'
  17. // https://vitejs.dev/config/
  18. export default defineConfig(({ mode }) => {
  19. return {
  20. base: './',
  21. optimizeDeps: {
  22. exclude: process.env.NODE_ENV === 'development' ? ['wot-design-uni', 'uni-echarts'] : [],
  23. },
  24. plugins: [
  25. // https://github.com/uni-helper/vite-plugin-uni-manifest
  26. UniHelperManifest(),
  27. // https://github.com/uni-helper/vite-plugin-uni-pages
  28. pagesJson({
  29. hooks: [hookUniPlatform], // 支持 vite-plugin-uni-platform
  30. dts: 'src/uni-pages.d.ts',
  31. exclude: ['**/components/**/*.*'],
  32. }),
  33. // https://github.com/uni-helper/vite-plugin-uni-layouts
  34. UniHelperLayouts(),
  35. // https://github.com/uni-helper/vite-plugin-uni-components
  36. UniHelperComponents({
  37. resolvers: [WotResolver(), UniEchartsResolver()],
  38. dts: 'src/components.d.ts',
  39. dirs: ['src/components', 'src/business'],
  40. directoryAsNamespace: true,
  41. }),
  42. // https://github.com/uni-ku/root
  43. UniKuRoot(),
  44. // https://uni-echarts.xiaohe.ink
  45. UniEcharts(),
  46. // https://uni-helper.cn/plugin-uni
  47. Uni(),
  48. // https://github.com/uni-ku/bundle-optimizer
  49. Optimization({
  50. enable: isMpWeixin,
  51. logger: false,
  52. }),
  53. // https://github.com/antfu/unplugin-auto-import
  54. AutoImport({
  55. imports: ['vue', '@vueuse/core', 'pinia', 'uni-app', {
  56. from: '@wot-ui/router',
  57. imports: ['createRouter', 'useRouter', 'useRoute'],
  58. }, {
  59. from: 'wot-design-uni',
  60. imports: ['useToast', 'useMessage', 'useNotify', 'CommonUtil'],
  61. }, {
  62. from: 'alova/client',
  63. imports: ['usePagination', 'useRequest'],
  64. }],
  65. dts: 'src/auto-imports.d.ts',
  66. dirs: ['src/composables', 'src/store', 'src/utils', 'src/api'],
  67. vueTemplate: true,
  68. }),
  69. // https://github.com/antfu/unocss
  70. // see unocss.config.ts for config
  71. UnoCSS(),
  72. ],
  73. server: {
  74. host: '0.0.0.0',
  75. port: 8181,
  76. proxy: {
  77. '/api': {
  78. target: loadEnv(mode, process.cwd()),
  79. changeOrigin: true,
  80. rewrite: path => path.replace(/^\/api/, ''),
  81. },
  82. },
  83. },
  84. }
  85. })