vite.config.ts 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /*
  2. * @Author: wjc
  3. * @Date: 2024-05-27 10:17:11
  4. * @LastEditors: wjc
  5. * @LastEditTime: 2024-05-29 15:56:51
  6. * @Description:
  7. */
  8. import path from 'path'
  9. import { defineConfig, loadEnv } from 'vite'
  10. import UnoCSS from 'unocss/vite'
  11. import uni from '@dcloudio/vite-plugin-uni'
  12. import PurgeIcons from 'vite-plugin-purge-icons'
  13. import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
  14. import AutoImport from 'unplugin-auto-import/vite'
  15. const root = process.cwd()
  16. function pathResolve(dir: string) {
  17. return path.resolve(root, '.', dir)
  18. }
  19. // https://vitejs.dev/config/
  20. export default defineConfig(({ mode }) => {
  21. const env = loadEnv(mode, process.cwd(), '')
  22. return {
  23. resolve: {
  24. alias: {
  25. '@': path.resolve(__dirname, 'src'),
  26. },
  27. },
  28. server: {
  29. proxy: {
  30. '/api': {
  31. target: env.VITE_APP_BASE_API, // 对应自己的接口
  32. changeOrigin: true,
  33. },
  34. },
  35. },
  36. plugins: [
  37. uni(),
  38. UnoCSS(),
  39. createSvgIconsPlugin({
  40. iconDirs: [pathResolve('src/static/icons')],
  41. symbolId: 'icon-[dir]-[name]',
  42. svgoOptions: true,
  43. }),
  44. AutoImport({
  45. include: [
  46. /\.[tj]sx?$/, // .ts, .tsx, .js, .jsx
  47. /\.vue$/,
  48. /\.vue\?vue/, // .vue
  49. ],
  50. dirs: ['./src'],
  51. imports: ['vue', 'uni-app'], // 限定范围为 vue, vue-router
  52. dts: 'types/auto-import.d.ts', // 自动生成 'auto-import.d.ts'全局声明
  53. }),
  54. PurgeIcons(),
  55. ],
  56. }
  57. })