vite.config.ts 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import { fileURLToPath, URL } from 'node:url'
  2. import { defineConfig,loadEnv } from 'vite'
  3. import vue from '@vitejs/plugin-vue'
  4. import vueRouter from 'unplugin-vue-router/vite'
  5. import vueLayouts from 'vite-plugin-vue-layouts'
  6. import vueComponents from 'unplugin-vue-components/vite'
  7. import autoImports from 'unplugin-auto-import/vite'
  8. import Unocss from 'unocss/vite'
  9. import { NaiveUiResolver } from 'unplugin-vue-components/resolvers'
  10. import Components from 'unplugin-vue-components/vite'
  11. import Pages from 'vite-plugin-pages'
  12. export default defineConfig(({ mode }) => {
  13. const viteEnv = loadEnv(mode, process.cwd())
  14. const { VITE_PUBLIC_PATH, VITE_PROXY_TARGET } = viteEnv
  15. return {
  16. base: VITE_PUBLIC_PATH || '/',
  17. plugins: [
  18. vueRouter(),
  19. vue(),
  20. Unocss(),
  21. Pages({
  22. dirs: 'src/pages', // 需要生成路由的文件目录
  23. exclude: ['**/components/*.vue'] // 排除在外的目录,即不将所有 components 目录下的 .vue 文件生成路由
  24. }),
  25. vueLayouts(),
  26. vueComponents(),
  27. autoImports({
  28. imports: ['vue', 'vue-router', 'vue-i18n', {
  29. 'naive-ui': [
  30. 'useDialog',
  31. 'useMessage',
  32. 'useNotification',
  33. 'useLoadingBar'
  34. ]
  35. }],
  36. }),
  37. Components({
  38. resolvers: [NaiveUiResolver()]
  39. })
  40. ],
  41. resolve: {
  42. alias: {
  43. '@': fileURLToPath(new URL('./src', import.meta.url)),
  44. },
  45. },
  46. server: {
  47. host: '0.0.0.0',
  48. port: 3300,
  49. open: false,
  50. proxy: {
  51. '/api': {
  52. target: VITE_PROXY_TARGET,
  53. changeOrigin: true,
  54. rewrite: path => path.replace(/^\/api/, ''),
  55. secure: false,
  56. // configure: (proxy, options) => {
  57. // // 配置此项可在响应头中看到请求的真实地址
  58. // proxy.on('proxyRes', (proxyRes, req) => {
  59. // proxyRes.headers['x-real-url'] = new URL(req.url || '', options.target)?.href || ''
  60. // })
  61. // },
  62. },
  63. },
  64. },
  65. }
  66. })