You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

42 lines
1.3 KiB

import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { TDesignResolver } from 'unplugin-vue-components/resolvers'
import { HttpProxyAgent } from 'http-proxy-agent'
// 本机若配置了 http_proxy(如 7890),Vite 代理出站需显式走 agent,否则直连局域网可能 EHOSTUNREACH
const outboundProxy = process.env.http_proxy || process.env.HTTP_PROXY || ''
const proxyAgent = outboundProxy ? new HttpProxyAgent(outboundProxy) : undefined
export default defineConfig({
plugins: [
vue(),
AutoImport({
resolvers: [TDesignResolver({ library: 'vue-next' })],
}),
Components({
resolvers: [TDesignResolver({ library: 'vue-next' })],
}),
],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url)),
},
},
envPrefix: ['APP_', 'VITE_'],
server: {
host: '0.0.0.0',
port: 5173,
proxy: {
// 浏览器请求 /api/* → 后端 /*(去掉 /api 前缀)
'/api': {
target: 'http://192.168.10.29:8080',
changeOrigin: true,
agent: proxyAgent,
rewrite: (path) => path.replace(/^\/api/, ''),
},
},
},
})