feat: 完善环境标识配置

This commit was merged in pull request #1.
This commit is contained in:
湛兮
2026-06-05 15:35:51 +08:00
parent c0b561b6cb
commit efa71ede6d
6 changed files with 61 additions and 20 deletions
+18 -4
View File
@@ -5,9 +5,9 @@ import { z } from "zod";
// 这样数据库密码、端口等配置错误会在服务启动阶段暴露,而不是等到请求进来才失败。
const envSchema = z.object({
NODE_ENV: z
.enum(["local", "development", "test", "production"])
.enum(["local", "development", "test", "develop", "production"])
.default("development"),
APP_ENV: z.enum(["local", "development", "test", "production"]).optional(),
APP_ENV: z.enum(["local", "development", "test", "develop", "production"]).optional(),
APP_ENV_LABEL: z.string().min(1).optional(),
PORT: z.coerce.number().int().positive().default(3000),
@@ -31,9 +31,23 @@ if (!result.success) {
process.exit(1);
}
const rawAppEnv = result.data.APP_ENV ?? result.data.NODE_ENV;
const resolvedAppEnv =
rawAppEnv === "production"
? "production"
: rawAppEnv === "test" || rawAppEnv === "develop"
? "develop"
: "local";
const defaultAppEnvLabel =
{
local: "本地环境",
develop: "测试环境",
production: "生产环境"
}[resolvedAppEnv] ?? resolvedAppEnv;
// 其他模块只从 env 读取已校验过的值,不再直接访问 process.env。
export const env = {
...result.data,
APP_ENV: result.data.APP_ENV ?? result.data.NODE_ENV,
APP_ENV_LABEL: result.data.APP_ENV_LABEL ?? result.data.NODE_ENV
APP_ENV: resolvedAppEnv,
APP_ENV_LABEL: result.data.APP_ENV_LABEL ?? defaultAppEnvLabel
};