Blame view

天文台pc/tianwentai-ui/vite.config.ts 1.74 KB
3a3dc915   王天杨   feat: 稻城亚丁项目批量更新
1
  import { defineConfig, loadEnv } from 'vite'
bc518174   王天杨   提交两个项目文件
2
  import path from 'path'
3a3dc915   王天杨   feat: 稻城亚丁项目批量更新
3
  import type { ProxyOptions } from 'vite'
bc518174   王天杨   提交两个项目文件
4
5
6
  import tailwindcss from '@tailwindcss/vite'
  import react from '@vitejs/plugin-react'
  
3a3dc915   王天杨   feat: 稻城亚丁项目批量更新
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
  /** 开发时代理到 PHP;默认 9901,可用 .env.development 的 VITE_DEV_PROXY_TARGET 覆盖 */
  function devProxyTarget(mode: string): string {
    const env = loadEnv(mode, process.cwd(), '')
    const raw = env.VITE_DEV_PROXY_TARGET?.trim() || 'http://127.0.0.1:9901'
    return raw.replace(/\/$/, '')
  }
  
  let proxyErrorHintPrinted = false
  
  function withProxyErrorHint(target: string): ProxyOptions {
    return {
      target,
      changeOrigin: true,
      configure(proxy) {
        proxy.on('error', (err: Error) => {
          if (proxyErrorHintPrinted) return
          proxyErrorHintPrinted = true
          console.error(`\n[vite proxy] ${err.message}`)
          console.error(`[vite proxy] 无法连接 ${target}(ECONNREFUSED = 该端口没有 PHP 在监听)`)
          console.error('[vite proxy] 请在新终端执行:')
          console.error('  cd ../daocheng-api')
          console.error('  composer run dev')
          console.error('  或在本目录执行:npm run api')
          console.error('[vite proxy] 若后端端口不同,请改 .env.development 里 VITE_DEV_PROXY_TARGET 与之一致。\n')
        })
      },
    }
  }
  
  export default defineConfig(({ mode }) => {
    const target = devProxyTarget(mode)
    return {
      server: {
        port: 9999,
        strictPort: true,
        proxy: {
          '/api': withProxyErrorHint(target),
          '/uploads': withProxyErrorHint(target),
bc518174   王天杨   提交两个项目文件
45
46
        },
      },
3a3dc915   王天杨   feat: 稻城亚丁项目批量更新
47
48
49
50
51
      plugins: [react(), tailwindcss()],
      resolve: {
        alias: {
          '@': path.resolve(__dirname, './src'),
        },
bc518174   王天杨   提交两个项目文件
52
      },
3a3dc915   王天杨   feat: 稻城亚丁项目批量更新
53
54
      assetsInclude: ['**/*.svg', '**/*.csv'],
    }
bc518174   王天杨   提交两个项目文件
55
  })