befly 3.13.5 → 3.13.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/befly.config.d.ts +1 -1
- package/dist/befly.config.js +8 -4
- package/dist/befly.js +15 -10
- package/dist/befly.min.js +10 -10
- package/dist/index.d.ts +2 -1
- package/dist/index.js +6 -3
- package/dist/types/befly.d.ts +6 -0
- package/dist/utils/processInfo.d.ts +4 -2
- package/dist/utils/processInfo.js +6 -5
- package/package.json +2 -2
package/README.md
CHANGED
package/dist/befly.config.d.ts
CHANGED
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
* 支持环境分离:befly.common.json + befly.development/production.json
|
|
5
5
|
*/
|
|
6
6
|
import type { BeflyOptions } from "./types/befly";
|
|
7
|
-
export declare function loadBeflyConfig(): Promise<BeflyOptions>;
|
|
7
|
+
export declare function loadBeflyConfig(nodeEnv?: string): Promise<BeflyOptions>;
|
package/dist/befly.config.js
CHANGED
|
@@ -71,15 +71,19 @@ const defaultOptions = {
|
|
|
71
71
|
// ========== Addon 配置 ==========
|
|
72
72
|
addons: {}
|
|
73
73
|
};
|
|
74
|
-
export async function loadBeflyConfig() {
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
export async function loadBeflyConfig(nodeEnv) {
|
|
75
|
+
if (nodeEnv !== "development" && nodeEnv !== "production") {
|
|
76
|
+
throw new Error(`配置错误:NODE_ENV 只能是 'development' 或 'production',当前值=${String(nodeEnv)}`);
|
|
77
|
+
}
|
|
77
78
|
// 使用 importDefault 加载 configs 目录下的配置文件。
|
|
78
79
|
// 合并顺序:defaultOptions ← befly.common.json ← befly.development/production.json
|
|
79
80
|
const configsDir = join(process.cwd(), "configs");
|
|
80
81
|
const commonConfig = await importDefault(join(configsDir, "befly.common.json"), {});
|
|
81
|
-
const envConfig = await importDefault(join(configsDir, `befly.${
|
|
82
|
+
const envConfig = await importDefault(join(configsDir, `befly.${nodeEnv}.json`), {});
|
|
82
83
|
const config = mergeAndConcat(defaultOptions, commonConfig, envConfig);
|
|
84
|
+
// 重要:nodeEnv 的来源只从 Befly.start(env) 的入参 env.NODE_ENV 传入,避免 process.env 在 bundle 阶段被常量折叠。
|
|
85
|
+
// 同时确保运行时行为(例如 Bun.serve development 标记)与实际选择的配置文件一致。
|
|
86
|
+
config.nodeEnv = nodeEnv;
|
|
83
87
|
// 配置校验:redis.prefix 作为 key 前缀,由 RedisHelper 统一拼接 ":"。
|
|
84
88
|
// 因此 prefix 本身不允许包含 ":",否则会导致 key 结构出现空段或多段分隔(例如 "prefix::key"),
|
|
85
89
|
// 在 RedisInsight 等工具里可能显示 [NO NAME] 空分组,且容易造成 key 管理混乱。
|
package/dist/befly.js
CHANGED
|
@@ -7608,13 +7608,15 @@ var defaultOptions = {
|
|
|
7608
7608
|
disableMenus: ["**/404", "**/403", "**/500", "**/login"],
|
|
7609
7609
|
addons: {}
|
|
7610
7610
|
};
|
|
7611
|
-
async function loadBeflyConfig() {
|
|
7612
|
-
|
|
7613
|
-
|
|
7611
|
+
async function loadBeflyConfig(nodeEnv) {
|
|
7612
|
+
if (nodeEnv !== "development" && nodeEnv !== "production") {
|
|
7613
|
+
throw new Error(`\u914D\u7F6E\u9519\u8BEF\uFF1ANODE_ENV \u53EA\u80FD\u662F 'development' \u6216 'production'\uFF0C\u5F53\u524D\u503C=${String(nodeEnv)}`);
|
|
7614
|
+
}
|
|
7614
7615
|
const configsDir = join(process.cwd(), "configs");
|
|
7615
7616
|
const commonConfig = await importDefault(join(configsDir, "befly.common.json"), {});
|
|
7616
|
-
const envConfig = await importDefault(join(configsDir, `befly.${
|
|
7617
|
+
const envConfig = await importDefault(join(configsDir, `befly.${nodeEnv}.json`), {});
|
|
7617
7618
|
const config2 = mergeAndConcat(defaultOptions, commonConfig, envConfig);
|
|
7619
|
+
config2.nodeEnv = nodeEnv;
|
|
7618
7620
|
const redisPrefix = config2?.redis?.prefix;
|
|
7619
7621
|
if (typeof redisPrefix === "string") {
|
|
7620
7622
|
const trimmedPrefix = redisPrefix.trim();
|
|
@@ -10559,9 +10561,10 @@ var calcPerfTime = (startTime, endTime = Bun.nanoseconds()) => {
|
|
|
10559
10561
|
};
|
|
10560
10562
|
|
|
10561
10563
|
// utils/processInfo.ts
|
|
10562
|
-
function getProcessRole() {
|
|
10563
|
-
const
|
|
10564
|
-
const
|
|
10564
|
+
function getProcessRole(env) {
|
|
10565
|
+
const runtimeEnv = env || {};
|
|
10566
|
+
const bunWorkerId = runtimeEnv.BUN_WORKER_ID;
|
|
10567
|
+
const pm2InstanceId = runtimeEnv.PM2_INSTANCE_ID;
|
|
10565
10568
|
if (bunWorkerId !== undefined) {
|
|
10566
10569
|
return {
|
|
10567
10570
|
role: bunWorkerId === "" ? "primary" : "worker",
|
|
@@ -15269,11 +15272,13 @@ class Befly {
|
|
|
15269
15272
|
hooks = [];
|
|
15270
15273
|
context = {};
|
|
15271
15274
|
config = null;
|
|
15272
|
-
async start() {
|
|
15275
|
+
async start(env) {
|
|
15273
15276
|
try {
|
|
15274
15277
|
const serverStartTime = Bun.nanoseconds();
|
|
15275
|
-
|
|
15278
|
+
const runtimeEnv = env || {};
|
|
15279
|
+
this.config = await loadBeflyConfig(runtimeEnv.NODE_ENV);
|
|
15276
15280
|
this.context.config = this.config;
|
|
15281
|
+
this.context.env = runtimeEnv;
|
|
15277
15282
|
const { apis, tables, plugins, hooks, addons } = await scanSources();
|
|
15278
15283
|
this.context.addons = addons;
|
|
15279
15284
|
await checkApi(apis);
|
|
@@ -15333,7 +15338,7 @@ class Befly {
|
|
|
15333
15338
|
}
|
|
15334
15339
|
});
|
|
15335
15340
|
const finalStartupTime = calcPerfTime(serverStartTime);
|
|
15336
|
-
const processRole = getProcessRole();
|
|
15341
|
+
const processRole = getProcessRole(runtimeEnv);
|
|
15337
15342
|
const roleLabel = processRole.role === "primary" ? "\u4E3B\u8FDB\u7A0B" : `\u5DE5\u4F5C\u8FDB\u7A0B #${processRole.instanceId}`;
|
|
15338
15343
|
const envLabel = processRole.env === "standalone" ? "" : ` [${processRole.env}]`;
|
|
15339
15344
|
Logger.info(`${this.config.appName} \u542F\u52A8\u6210\u529F! (${roleLabel}${envLabel})`);
|