vite.config.ts 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import { fileURLToPath, URL } from 'node:url'
  2. import { defineConfig, loadEnv } from 'vite'
  3. import vue from '@vitejs/plugin-vue'
  4. import vueDevTools from 'vite-plugin-vue-devtools'
  5. import Components from 'unplugin-vue-components/vite'
  6. import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers'
  7. import { readFileSync } from 'fs'
  8. import { formatDateTime } from './src/utils'
  9. import buildInfoPlugin from './scripts/build-info-plugin'
  10. // https://vite.dev/config/
  11. export default defineConfig(({ mode }) => {
  12. // 加载环境变量
  13. const env = loadEnv(mode, process.cwd(), '')
  14. // 获取当前环境的API主机
  15. const apiHost = env.VITE_APP_HOST
  16. // 添加日志输出
  17. console.log(`🚀CurrentMode: ${mode}`)
  18. console.log(`🚀HostAPI: ${apiHost}`)
  19. console.log(`🚀ProxyAPI: ${apiHost}`)
  20. const pkg = JSON.parse(readFileSync('./package.json', 'utf-8'))
  21. return {
  22. plugins: [
  23. vue(),
  24. vueDevTools(),
  25. buildInfoPlugin(mode),
  26. Components({
  27. resolvers: [
  28. AntDesignVueResolver({
  29. importStyle: false, // css in js
  30. }),
  31. ],
  32. }),
  33. ],
  34. define: {
  35. __APP_VERSION__: JSON.stringify(pkg.version),
  36. __BUILD_TIME__: JSON.stringify(formatDateTime(new Date())),
  37. },
  38. resolve: {
  39. alias: {
  40. '@': fileURLToPath(new URL('./src', import.meta.url)),
  41. },
  42. },
  43. server: {
  44. proxy: {
  45. '/portal-service-server': {
  46. target: apiHost,
  47. changeOrigin: true,
  48. secure: false,
  49. rewrite: (path) => path,
  50. },
  51. '/pub': {
  52. target: apiHost,
  53. changeOrigin: true,
  54. secure: false,
  55. rewrite: (path) => path,
  56. },
  57. },
  58. cors: true,
  59. },
  60. }
  61. })