Files
biz_pay_h5/vite.config.ts

43 lines
1.4 KiB
TypeScript

import path from "node:path"
import { defineConfig, loadEnv } from "vite"
import uni from "@dcloudio/vite-plugin-uni"
import UnoCSS from "unocss/vite"
/** 按当前模式读取后端地址;保留目标自带的 /api 等路径,只移除浏览器请求的代理前缀。 */
function createApiProxy(mode: string) {
/** 沿用参考项目的 .env 变量,由 Vite 按运行模式加载,开发服务器只转发到开发后端。 */
const env = loadEnv(mode, __dirname, "VITE_")
const apiTarget = (env.VITE_APP_DEV_SERVICE || "").trim().replace(/\/+$/, "")
/** 与请求层共用 .env 中的本地接口前缀,默认 /api。 */
const apiPrefix = (env.VITE_API_URL || "/api").trim().replace(/\/+$/, "")
return apiTarget ? {
[apiPrefix]: {
target: apiTarget,
changeOrigin: true,
/** 微服务的 /third 与单体服务的无前缀路径由请求层决定,代理只移除本地前缀。 */
rewrite: (requestPath: string) => requestPath.slice(apiPrefix.length),
},
} : undefined
}
/** H5 独立开发端口避开参考 App 的 8889,别名沿用其业务目录约定 */
export default defineConfig(({ mode }) => ({
plugins: [uni(), UnoCSS()],
resolve: {
alias: {
"@": path.resolve(__dirname, "src"),
"@@": path.resolve(__dirname, "src/sheep"),
},
},
server: {
host: "0.0.0.0",
port: 8890,
strictPort: true,
proxy: createApiProxy(mode),
},
build: {
target: "es2018",
sourcemap: false,
},
}))