feat(framework): config 运行模式解析 resolveRuntimeMode(自动+手动覆盖)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
export type RuntimeMode = 'debug' | 'release';
|
||||
|
||||
/**
|
||||
* 手动覆盖运行模式。
|
||||
* null = 自动跟随构建类型(推荐,发布前保持 null)。
|
||||
* 'debug' / 'release' = 强制该模式(release 包里临时调试,或编辑器预览里验证正式行为)。
|
||||
*/
|
||||
export const MODE_OVERRIDE: RuntimeMode | null = null;
|
||||
|
||||
/**
|
||||
* 解析运行模式:override 优先,否则由是否 debug 构建决定。
|
||||
* isDebugBuild 由调用方读 Cocos 全局 DEBUG 传入(typeof DEBUG !== 'undefined' ? DEBUG : true)。
|
||||
*/
|
||||
export function resolveRuntimeMode(
|
||||
isDebugBuild: boolean,
|
||||
override: RuntimeMode | null = MODE_OVERRIDE,
|
||||
): RuntimeMode {
|
||||
if (override) return override;
|
||||
return isDebugBuild ? 'debug' : 'release';
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
import { test } from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import { resolveRuntimeMode } from '../../YouleNexus/assets/framework/config/runtime-mode.ts';
|
||||
|
||||
test('override 优先于构建类型', () => {
|
||||
assert.equal(resolveRuntimeMode(true, 'release'), 'release');
|
||||
assert.equal(resolveRuntimeMode(false, 'debug'), 'debug');
|
||||
});
|
||||
|
||||
test('无 override:debug 构建 → debug', () => {
|
||||
assert.equal(resolveRuntimeMode(true, null), 'debug');
|
||||
});
|
||||
|
||||
test('无 override:release 构建 → release', () => {
|
||||
assert.equal(resolveRuntimeMode(false, null), 'release');
|
||||
});
|
||||
Reference in New Issue
Block a user