Files
pj_mini_app_cloud/vite.config.ts
T

56 lines
1.4 KiB
TypeScript

import path from "path"
import { defineConfig, loadEnv } from "vite"
import Unocss from "unocss/vite"
import uni from "@dcloudio/vite-plugin-uni"
import { useRouter } from "./src/sheep/plugs/use-router/vite-router-plug"
// https://vitejs.dev/config/
export default defineConfig(({ mode }) => {
const { NODE_ENV, VITE_APP_DEV_SERVICE, VITE_APP_PROD_SERVICE, VITE_IMAGE_DEV_PATH } = loadEnv(mode, process.cwd(), "")
const baseUrl = NODE_ENV == "development" ? VITE_APP_DEV_SERVICE : VITE_APP_PROD_SERVICE
// 生产环境强制 HTTPS 检查
if (NODE_ENV === "production" && baseUrl && !baseUrl.startsWith("https://")) {
throw new Error("生产环境必须使用 HTTPS 协议!请检查 VITE_APP_PROD_SERVICE 配置")
}
return {
build: {
target: "es6",
},
plugins: [
uni(),
Unocss(),
{
...useRouter({
pagesJsonDir: path.resolve(__dirname, "./src/pages.json"),
includes: ["meta"],
}),
enforce: "post",
},
],
resolve: {
alias: {
"@": path.resolve(__dirname, "./src"),
"@@": path.resolve(__dirname, "./src/sheep"),
},
},
server: {
host: "0.0.0.0",
port: 8889,
hmr: true,
proxy: {
"/api": {
target: baseUrl,
ws: true,
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, ""),
// 生产环境强制 HTTPS 验证
...(NODE_ENV === "production" && { secure: true }),
},
},
},
}
})