48 lines
1.6 KiB
TypeScript
48 lines
1.6 KiB
TypeScript
import { fileURLToPath, URL } from 'node:url';
|
||
import { defineConfig } from 'vite';
|
||
import uniPlugin from '@dcloudio/vite-plugin-uni';
|
||
|
||
const uni = typeof uniPlugin === 'function' ? uniPlugin : uniPlugin.default;
|
||
const devPort = Number(process.env.PORT) || 5175;
|
||
const devHost = process.env.HOST || '0.0.0.0';
|
||
// 裸跑 npm run dev(如 Kimi Work 预览)时代理到本地 8080 后端;
|
||
// 走 portless(scripts/dev.sh)时由 VITE_PROXY_TARGET 显式指向 https://wygj-api.localhost
|
||
const proxyTarget = process.env.VITE_PROXY_TARGET || 'http://127.0.0.1:8080';
|
||
// 代理到线上等已带 /dev-api 前缀的网关时,设 VITE_PROXY_KEEP_PREFIX=1 保留前缀
|
||
const keepProxyPrefix = process.env.VITE_PROXY_KEEP_PREFIX === '1';
|
||
// DCloud's current App compiler imports two internal lifecycle helpers from
|
||
// `vue`. Public Vue packages intentionally do not export them, so provide a
|
||
// narrow App-only compatibility module. H5 continues to resolve the normal
|
||
// Vue package.
|
||
const appVueRuntimeShim = process.env.UNI_PLATFORM === 'app'
|
||
? fileURLToPath(new URL('./src/shims/vue-app-runtime.js', import.meta.url))
|
||
: undefined;
|
||
|
||
const proxy = {
|
||
'/dev-api': {
|
||
target: proxyTarget,
|
||
changeOrigin: true,
|
||
secure: false,
|
||
rewrite: (path) => (keepProxyPrefix ? path : path.replace(/^\/dev-api/, ''))
|
||
}
|
||
};
|
||
|
||
export default defineConfig({
|
||
plugins: [uni()],
|
||
resolve: appVueRuntimeShim
|
||
? { alias: { vue: appVueRuntimeShim } }
|
||
: undefined,
|
||
server: {
|
||
host: devHost,
|
||
port: devPort,
|
||
strictPort: true,
|
||
proxy
|
||
},
|
||
preview: {
|
||
host: devHost,
|
||
port: devPort,
|
||
strictPort: true,
|
||
proxy
|
||
}
|
||
});
|