vite.config.ts 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /*
  2. * @Author: wjc
  3. * @Date: 2024-05-27 10:17:11
  4. * @LastEditors: wjc
  5. * @LastEditTime: 2024-07-12 11:27:53
  6. * @Description:
  7. */
  8. import path from 'node:path'
  9. import { defineConfig, loadEnv } from 'vite'
  10. import UnoCSS from 'unocss/vite'
  11. import uni from '@dcloudio/vite-plugin-uni'
  12. import AutoImport from 'unplugin-auto-import/vite'
  13. import Components from 'unplugin-vue-components/vite'
  14. import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
  15. import vueJsx from '@vitejs/plugin-vue-jsx'
  16. import UniLayouts from '@uni-helper/vite-plugin-uni-layouts'
  17. // import UniPages from '@uni-helper/vite-plugin-uni-pages'
  18. import UniProvider from './build/vite-plugin-uni-provider'
  19. const root = process.cwd()
  20. function pathResolve(dir: string) {
  21. return path.resolve(root, '.', dir)
  22. }
  23. // https://vitejs.dev/config/
  24. export default defineConfig(({ mode }) => {
  25. const env = loadEnv(mode, process.cwd(), '')
  26. return {
  27. resolve: {
  28. alias: {
  29. '@': pathResolve('src'),
  30. },
  31. },
  32. server: {
  33. proxy: {
  34. '/api': {
  35. target: env.VITE_APP_BASE_API, // 对应自己的接口
  36. changeOrigin: true,
  37. },
  38. },
  39. },
  40. plugins: [
  41. UniLayouts(),
  42. uni(),
  43. // UniPages(),
  44. //自动注册页面全局组件
  45. UniProvider(),
  46. UnoCSS(),
  47. vueJsx(),
  48. // 仅支持 H5
  49. createSvgIconsPlugin({
  50. iconDirs: [pathResolve('src/static/icons')],
  51. symbolId: 'icon-[dir]-[name]',
  52. svgoOptions: true,
  53. }),
  54. Components({
  55. // 按需导入组件,相关组件声明放置于 components.d.ts
  56. dts: './types/components.d.ts',
  57. dirs: ['src/components'],
  58. }),
  59. AutoImport({
  60. include: [
  61. /\.[tj]sx?$/, // .ts, .tsx, .js, .jsx
  62. /\.vue$/,
  63. /\.vue\?vue/, // .vue
  64. ],
  65. dirs: ['./src'],
  66. imports: ['vue', 'uni-app'], // 限定范围为 vue, uni-app
  67. dts: 'types/auto-import.d.ts', // 自动生成 'auto-import.d.ts'全局声明
  68. }),
  69. ],
  70. }
  71. })