@ttmg/cli 0.4.1 → 0.4.3
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/dist/index.js +146 -19
- package/dist/index.js.map +1 -1
- package/dist/package.json +1 -1
- package/dist/public/assets/Detail-1nSjYvRw.js +1 -0
- package/dist/public/assets/Detail-1nSjYvRw.js.br +0 -0
- package/dist/public/assets/MonetizationMode-hwWN5zUT.js +1 -0
- package/dist/public/assets/MonetizationModeSummary-BmvxAKbI.js +1 -0
- package/dist/public/assets/SectionHeader-BL_bJf61.js +1 -0
- package/dist/public/assets/Tag-B4bSl-_E.js +1 -0
- package/dist/public/assets/baseForm-BAvk37jF.css +1 -0
- package/dist/public/assets/baseForm-BAvk37jF.css.br +0 -0
- package/dist/public/assets/baseForm-zW5Gb1OH.js +10 -0
- package/dist/public/assets/baseForm-zW5Gb1OH.js.br +0 -0
- package/dist/public/assets/col-BXewy14r.css +1 -0
- package/dist/public/assets/col-BXewy14r.css.br +0 -0
- package/dist/public/assets/col-vAurEPaC.js +1 -0
- package/dist/public/assets/{compass-VJNhHwqW.js → compass-DEadzu-v.js} +1 -1
- package/dist/public/assets/index-3FxbJxwu.css +1 -0
- package/dist/public/assets/index-BCdOYP-_.js +1 -0
- package/dist/public/assets/{index-BO5MBsdm.js → index-BJmPZor5.js} +1 -1
- package/dist/public/assets/{index-BJZ4gOGZ.css → index-BRJFt3oz.css} +1 -1
- package/dist/public/assets/index-BRJFt3oz.css.br +0 -0
- package/dist/public/assets/{index-BBR3CPkN.js → index-BXllV1mP.js} +1 -1
- package/dist/public/assets/index-BXllV1mP.js.br +0 -0
- package/dist/public/assets/index-BdixrK5I.css +1 -0
- package/dist/public/assets/index-BdixrK5I.css.br +0 -0
- package/dist/public/assets/index-BlG-Rcwd.css +1 -0
- package/dist/public/assets/{index-s_30KWiA.js → index-Bpx0cjfq.js} +1 -1
- package/dist/public/assets/index-BuiCnshQ.js +1 -0
- package/dist/public/assets/{index-bQUQ2Wmz.js → index-C2jjb4tf.js} +1 -1
- package/dist/public/assets/index-C5k1IRcX.js +1 -0
- package/dist/public/assets/index-C5k1IRcX.js.br +0 -0
- package/dist/public/assets/{index-DMsjcIN8.js → index-CHODjAYV.js} +1 -1
- package/dist/public/assets/index-CYnulX57.css +1 -0
- package/dist/public/assets/index-CYnulX57.css.br +0 -0
- package/dist/public/assets/index-CaArjQkD.js +1 -0
- package/dist/public/assets/index-CaArjQkD.js.br +0 -0
- package/dist/public/assets/index-ChtjciM4.js +1 -0
- package/dist/public/assets/index-ChtjciM4.js.br +0 -0
- package/dist/public/assets/index-CozQgXOx.js +1 -0
- package/dist/public/assets/index-CozQgXOx.js.br +0 -0
- package/dist/public/assets/index-Cw4SLGVh.js +1 -0
- package/dist/public/assets/index-Czg0RYGI.css +1 -0
- package/dist/public/assets/index-Czg0RYGI.css.br +0 -0
- package/dist/public/assets/index-DBDUeSB8.css +1 -0
- package/dist/public/assets/index-DBDUeSB8.css.br +0 -0
- package/dist/public/assets/index-DKxf26_O.css +1 -0
- package/dist/public/assets/{index-RYY-l6Oq.css → index-DM7Cg9s9.css} +1 -1
- package/dist/public/assets/index-DVDX92Zz.js +1 -0
- package/dist/public/assets/{index-DbxY65Om.js → index-Db3F1FgQ.js} +1 -1
- package/dist/public/assets/{index-C1C34gtn.js → index-Dd2Oev0p.js} +1 -1
- package/dist/public/assets/index-DfVst8q1.css +1 -0
- package/dist/public/assets/{index-BH099q_U.js → index-DhK1XTMu.js} +1 -1
- package/dist/public/assets/index-Dj0vBPuW.js +1 -0
- package/dist/public/assets/{index-C_npSvtQ.js → index-Do7tPKef.js} +1 -1
- package/dist/public/assets/index-DpnThngH.js +1 -0
- package/dist/public/assets/index-DyHfBQPm.js +1 -0
- package/dist/public/assets/index-HqjZ5P-l.css +1 -0
- package/dist/public/assets/index-P3QtE2VP.js +1 -0
- package/dist/public/assets/index-P3QtE2VP.js.br +0 -0
- package/dist/public/assets/{index-Dn5HHf-0.js → index-QtH0wQu1.js} +1 -1
- package/dist/public/assets/index-qycdeV7S.js +1 -0
- package/dist/public/assets/index-qycdeV7S.js.br +0 -0
- package/dist/public/assets/index-vlN_-PRJ.css +1 -0
- package/dist/public/assets/index-vuGJOmRn.js +1 -0
- package/dist/public/assets/index-wqj8y8SZ.js +21 -0
- package/dist/public/assets/index-wqj8y8SZ.js.br +0 -0
- package/dist/public/assets/layers-DDrUeTNf.js +1 -0
- package/dist/public/assets/list-checks-C4ci4EKo.js +1 -0
- package/dist/public/assets/{sparkles-Bv2GxrFr.js → sparkles-PwlPP_sT.js} +1 -1
- package/dist/public/assets/triangle-alert-BAadCxAv.js +1 -0
- package/dist/public/assets/{zap-CjkC_qWZ.js → zap-CgIIDLY4.js} +1 -1
- package/dist/public/index.html +2 -2
- package/dist/scripts/docs/README.md +80 -0
- package/dist/scripts/docs/capture.js +91 -7
- package/dist/scripts/docs/check.js +184 -0
- package/dist/scripts/docs/render.js +372 -12
- package/dist/scripts/docs/scenarios/devtool-guide.mjs +921 -0
- package/package.json +1 -1
- package/CHANGELOG.md +0 -267
- package/dist/public/assets/Card-ASGGlJ8S.js +0 -1
- package/dist/public/assets/Detail-DY__Zw0r.js +0 -1
- package/dist/public/assets/Detail-DY__Zw0r.js.br +0 -0
- package/dist/public/assets/MonetizationMode-sHN_4ybQ.js +0 -1
- package/dist/public/assets/MonetizationModeSummary-DLvyriLM.js +0 -1
- package/dist/public/assets/SectionHeader-B7dueBCf.js +0 -1
- package/dist/public/assets/Tag-BsX0d6UL.js +0 -1
- package/dist/public/assets/arrow-left-uixm7Sd1.js +0 -1
- package/dist/public/assets/baseForm-C8XfTFyG.js +0 -10
- package/dist/public/assets/baseForm-C8XfTFyG.js.br +0 -0
- package/dist/public/assets/baseForm-Dl4zA6hU.css +0 -1
- package/dist/public/assets/baseForm-Dl4zA6hU.css.br +0 -0
- package/dist/public/assets/boxes-C7RoIbId.js +0 -1
- package/dist/public/assets/chevron-right-B1WBZrrD.js +0 -1
- package/dist/public/assets/circle-check-wUxXeINd.js +0 -1
- package/dist/public/assets/index-BAud2cRu.css +0 -1
- package/dist/public/assets/index-BBR3CPkN.js.br +0 -0
- package/dist/public/assets/index-BJZ4gOGZ.css.br +0 -0
- package/dist/public/assets/index-BNc8JtET.js +0 -1
- package/dist/public/assets/index-Bd-f8ERX.js +0 -1
- package/dist/public/assets/index-ByX5RuFA.css +0 -1
- package/dist/public/assets/index-C7Tmy9g3.js +0 -1
- package/dist/public/assets/index-CCKb9Y-j.js +0 -14
- package/dist/public/assets/index-CCKb9Y-j.js.br +0 -0
- package/dist/public/assets/index-CFd8iglC.css +0 -1
- package/dist/public/assets/index-CFd8iglC.css.br +0 -0
- package/dist/public/assets/index-CKhfKyA3.js +0 -1
- package/dist/public/assets/index-CKhfKyA3.js.br +0 -0
- package/dist/public/assets/index-Cc1ilXmc.css +0 -1
- package/dist/public/assets/index-DHXlsTU6.css +0 -1
- package/dist/public/assets/index-DHXlsTU6.css.br +0 -0
- package/dist/public/assets/index-DNd8ZTok.js +0 -1
- package/dist/public/assets/index-DNd8ZTok.js.br +0 -0
- package/dist/public/assets/index-DpkktYot.css +0 -1
- package/dist/public/assets/index-DtoDrber.js +0 -1
- package/dist/public/assets/index-DtoDrber.js.br +0 -0
- package/dist/public/assets/index-Dx5VGEQm.css +0 -1
- package/dist/public/assets/index-ZHPtAdJM.js +0 -1
- package/dist/public/assets/index-ZHPtAdJM.js.br +0 -0
- package/dist/public/assets/index-ZtlCPCV9.js +0 -1
- package/dist/public/assets/index-_6n0s04V.css +0 -1
- package/dist/public/assets/index-_6n0s04V.css.br +0 -0
- package/dist/public/assets/index-a-rMUS2V.js +0 -1
- package/dist/public/assets/index-qqnHwFjO.js +0 -1
- package/dist/public/assets/index-r3aSeNL1.js +0 -1
- package/dist/public/assets/index-t4JeqZ4a.js +0 -1
- package/dist/public/assets/layers-Biv61qtE.js +0 -1
package/dist/index.js
CHANGED
|
@@ -6615,8 +6615,9 @@ function verboseWarn(...args) {
|
|
|
6615
6615
|
/**
|
|
6616
6616
|
* PPE / 测试环境开关。
|
|
6617
6617
|
*
|
|
6618
|
-
*
|
|
6619
|
-
*
|
|
6618
|
+
* 除登录和本地客户端请求外,CLI 后端接口(`stark_wasm/v4/*`,
|
|
6619
|
+
* `wasm-collect/v1/*`, portal 业务接口等)都共用本文件的 `request()`,
|
|
6620
|
+
* 所以在这里统一注入 PPE header 就能覆盖主要平台请求。
|
|
6620
6621
|
* 不在 `DEV_HEADERS` 里改是因为那份常量只被 `remotePipeline.ts` 里的老
|
|
6621
6622
|
* 远程分包接口 spread 用;新加的 `startSession.ts` / `finishSession.ts` /
|
|
6622
6623
|
* `getCollectedFuncIds.ts` 都没 spread,漏一处就会绕开 PPE。
|
|
@@ -6624,8 +6625,8 @@ function verboseWarn(...args) {
|
|
|
6624
6625
|
* 要切回线上环境,直接把 `CLI_PPE_ENV` 设成空串即可(下方条件 spread 会
|
|
6625
6626
|
* 自动不带这两个 header)。
|
|
6626
6627
|
*/
|
|
6627
|
-
|
|
6628
|
-
const
|
|
6628
|
+
const CLI_PPE_ENV = 'ppe_role_perm'; // 走权限体系 PPE 环境
|
|
6629
|
+
const NETWORK_PROXY_ERROR_CODE = -1001;
|
|
6629
6630
|
function getAxiosProxyConfig() {
|
|
6630
6631
|
const config = getTTMGRC();
|
|
6631
6632
|
// 优先级: http-proxy > socks-proxy > proxy (老字段兼容)
|
|
@@ -6818,21 +6819,31 @@ async function request({ url, method, data, headers, params, logRequestBody = tr
|
|
|
6818
6819
|
};
|
|
6819
6820
|
}
|
|
6820
6821
|
catch (err) {
|
|
6822
|
+
const axiosError = err;
|
|
6823
|
+
const responseData = axiosError.response?.data;
|
|
6824
|
+
const networkError = responseData
|
|
6825
|
+
? responseData
|
|
6826
|
+
: {
|
|
6827
|
+
StatusCode: NETWORK_PROXY_ERROR_CODE,
|
|
6828
|
+
StatusMessage: 'Platform API request failed. Check whether the terminal proxy or VPN is applied to ttmg.',
|
|
6829
|
+
NetworkCode: axiosError.code,
|
|
6830
|
+
NetworkMessage: axiosError.message,
|
|
6831
|
+
};
|
|
6821
6832
|
if (isVerboseEnabled()) {
|
|
6822
6833
|
printApiResponseLog('API Error', {
|
|
6823
|
-
status:
|
|
6824
|
-
logid:
|
|
6825
|
-
data:
|
|
6834
|
+
status: axiosError.response?.status,
|
|
6835
|
+
logid: axiosError.response?.headers['x-tt-logid'],
|
|
6836
|
+
data: networkError,
|
|
6826
6837
|
});
|
|
6827
6838
|
}
|
|
6828
6839
|
// @ts-ignore
|
|
6829
6840
|
return {
|
|
6830
6841
|
data: null,
|
|
6831
6842
|
ctx: {
|
|
6832
|
-
logid:
|
|
6833
|
-
httpStatusCode:
|
|
6843
|
+
logid: axiosError.response?.headers['x-tt-logid'],
|
|
6844
|
+
httpStatusCode: axiosError.response?.status ?? 0,
|
|
6834
6845
|
},
|
|
6835
|
-
error:
|
|
6846
|
+
error: networkError,
|
|
6836
6847
|
};
|
|
6837
6848
|
}
|
|
6838
6849
|
}
|
|
@@ -6995,6 +7006,7 @@ async function fetchGameAssets({ miniGameId, }) {
|
|
|
6995
7006
|
});
|
|
6996
7007
|
}
|
|
6997
7008
|
|
|
7009
|
+
const GAME_INFO_NETWORK_ERROR_CODE = -1001;
|
|
6998
7010
|
async function fetchGameInfo(clientKey) {
|
|
6999
7011
|
// 访问 V4 接口
|
|
7000
7012
|
const response = await request({
|
|
@@ -7005,10 +7017,14 @@ async function fetchGameInfo(clientKey) {
|
|
|
7005
7017
|
},
|
|
7006
7018
|
});
|
|
7007
7019
|
if (!response?.data) {
|
|
7020
|
+
const error = response?.error;
|
|
7021
|
+
const hasHttpResponse = Boolean(response?.ctx?.httpStatusCode);
|
|
7022
|
+
const fallbackErrorCode = hasHttpResponse ? -1 : GAME_INFO_NETWORK_ERROR_CODE;
|
|
7008
7023
|
return {
|
|
7009
7024
|
error: {
|
|
7010
|
-
errorCode:
|
|
7011
|
-
errorMsg:
|
|
7025
|
+
errorCode: error?.StatusCode ?? fallbackErrorCode,
|
|
7026
|
+
errorMsg: error?.StatusMessage ||
|
|
7027
|
+
'Platform API request failed. Check terminal proxy or VPN configuration.',
|
|
7012
7028
|
clientKey: clientKey,
|
|
7013
7029
|
},
|
|
7014
7030
|
data: null,
|
|
@@ -7189,6 +7205,7 @@ const messages = {
|
|
|
7189
7205
|
'cli.command.reset.desc': 'Reset local CLI state',
|
|
7190
7206
|
'cli.command.init.desc': 'Initialize project',
|
|
7191
7207
|
'cli.command.dev.desc': 'Open browser dev environment',
|
|
7208
|
+
'cli.command.dev.clientKey': 'Client Key of the Mini Game',
|
|
7192
7209
|
'cli.command.build.desc': 'Bundle project',
|
|
7193
7210
|
'cli.command.config.desc': 'Manage configuration',
|
|
7194
7211
|
'cli.command.config.set.desc': 'Set a configuration value',
|
|
@@ -7320,6 +7337,7 @@ const messages = {
|
|
|
7320
7337
|
'cli.command.reset.desc': '重置本地 CLI 状态',
|
|
7321
7338
|
'cli.command.init.desc': '初始化项目',
|
|
7322
7339
|
'cli.command.dev.desc': '打开浏览器调试环境',
|
|
7340
|
+
'cli.command.dev.clientKey': '小游戏的 Client Key',
|
|
7323
7341
|
'cli.command.build.desc': '打包项目',
|
|
7324
7342
|
'cli.command.config.desc': '管理配置',
|
|
7325
7343
|
'cli.command.config.set.desc': '设置配置项',
|
|
@@ -8873,7 +8891,14 @@ function getLocalIP() {
|
|
|
8873
8891
|
return '127.0.0.1';
|
|
8874
8892
|
}
|
|
8875
8893
|
|
|
8876
|
-
async function init() {
|
|
8894
|
+
async function init(options = {}) {
|
|
8895
|
+
const providedClientKey = options.clientKey?.trim();
|
|
8896
|
+
if (providedClientKey) {
|
|
8897
|
+
setTTMGRC({
|
|
8898
|
+
clientKey: providedClientKey,
|
|
8899
|
+
});
|
|
8900
|
+
return;
|
|
8901
|
+
}
|
|
8877
8902
|
const promptModule = inquirer.createPromptModule();
|
|
8878
8903
|
const { clientKey: lastUsedClientKey } = getTTMGRC() || {};
|
|
8879
8904
|
if (lastUsedClientKey) {
|
|
@@ -9440,6 +9465,52 @@ const gameCheckRoute = {
|
|
|
9440
9465
|
};
|
|
9441
9466
|
|
|
9442
9467
|
const changelog = [
|
|
9468
|
+
{
|
|
9469
|
+
title: '0.4.3',
|
|
9470
|
+
target: {
|
|
9471
|
+
iOS: '>=43.1',
|
|
9472
|
+
Android: '>=43.1',
|
|
9473
|
+
},
|
|
9474
|
+
changes: {
|
|
9475
|
+
feature: [
|
|
9476
|
+
{
|
|
9477
|
+
desc: {
|
|
9478
|
+
'zh-CN': '新增子包收集能力:通过真机预览记录启动阶段实际预下载的子包,并生成预加载配置,帮助减少后续资源加载等待。当前仅支持非 Unity 小游戏。',
|
|
9479
|
+
'en-US': 'Add Subpackage Collection: use real-device preview to record subpackages downloaded during startup and generate preload configuration, helping reduce subsequent resource loading waits. Currently available for non-Unity mini games only.',
|
|
9480
|
+
},
|
|
9481
|
+
module: 'new',
|
|
9482
|
+
link: 'https://bytedance.my.larkoffice.com/docx/MIyMdmzb0oOQAKxNHGNmR5hDyAh',
|
|
9483
|
+
},
|
|
9484
|
+
],
|
|
9485
|
+
},
|
|
9486
|
+
},
|
|
9487
|
+
{
|
|
9488
|
+
title: '0.4.2',
|
|
9489
|
+
target: {
|
|
9490
|
+
iOS: '>=43.1',
|
|
9491
|
+
Android: '>=43.1',
|
|
9492
|
+
},
|
|
9493
|
+
changes: {
|
|
9494
|
+
optimize: [
|
|
9495
|
+
{
|
|
9496
|
+
desc: {
|
|
9497
|
+
'zh-CN': "优化异常状态提示文案,更准确地引导开发者解决问题",
|
|
9498
|
+
'en-US': "Optimize exception status prompt text, guide developers to solve problems more accurately",
|
|
9499
|
+
},
|
|
9500
|
+
module: 'new',
|
|
9501
|
+
},
|
|
9502
|
+
],
|
|
9503
|
+
feature: [
|
|
9504
|
+
{
|
|
9505
|
+
desc: {
|
|
9506
|
+
'zh-CN': '新增版本信息模块,展示游戏版本信息,包括版本号、发布时间、发布者等',
|
|
9507
|
+
'en-US': 'Add version information module to display game version information, including version number, release time, release author, etc.',
|
|
9508
|
+
},
|
|
9509
|
+
module: 'detail',
|
|
9510
|
+
},
|
|
9511
|
+
],
|
|
9512
|
+
},
|
|
9513
|
+
},
|
|
9443
9514
|
{
|
|
9444
9515
|
title: '0.4.1',
|
|
9445
9516
|
target: {
|
|
@@ -13249,6 +13320,35 @@ function collectPreloadSubpackages(entry, reported) {
|
|
|
13249
13320
|
}
|
|
13250
13321
|
return { entry, parallelPreloadSubpackages };
|
|
13251
13322
|
}
|
|
13323
|
+
/**
|
|
13324
|
+
* 重新收集前清除当前入口已写入的预加载配置。
|
|
13325
|
+
*
|
|
13326
|
+
* 与空采集写入不同,这里直接删除 `parallelPreloadSubpackages` 字段,让源码
|
|
13327
|
+
* game.json 回到“未配置”的状态,避免下一轮真机预览仍携带旧启动预加载策略。
|
|
13328
|
+
*/
|
|
13329
|
+
function clearPreloadSubpackagesConfig(entry) {
|
|
13330
|
+
const game = readRawGameJson();
|
|
13331
|
+
validateCollect(game, entry, []);
|
|
13332
|
+
let started = false;
|
|
13333
|
+
try {
|
|
13334
|
+
const container = isGameEntry(entry)
|
|
13335
|
+
? game.json
|
|
13336
|
+
: findSubpackage(game, entry);
|
|
13337
|
+
if (!container) {
|
|
13338
|
+
throw new Error(`入口 ${entry} 不存在`);
|
|
13339
|
+
}
|
|
13340
|
+
started = true;
|
|
13341
|
+
delete container[PRELOAD_FIELD_NAME];
|
|
13342
|
+
writeGameJson(game);
|
|
13343
|
+
}
|
|
13344
|
+
catch (err) {
|
|
13345
|
+
if (started) {
|
|
13346
|
+
restoreGameJson(game);
|
|
13347
|
+
}
|
|
13348
|
+
throw err;
|
|
13349
|
+
}
|
|
13350
|
+
return { entry, parallelPreloadSubpackages: [] };
|
|
13351
|
+
}
|
|
13252
13352
|
|
|
13253
13353
|
/**
|
|
13254
13354
|
* 读取某个启动入口已有的 parallelPreloadSubpackages(只读),用于 UI 初始化
|
|
@@ -13327,6 +13427,31 @@ const gameCollectPreloadSubpackagesRoute = {
|
|
|
13327
13427
|
},
|
|
13328
13428
|
};
|
|
13329
13429
|
|
|
13430
|
+
/**
|
|
13431
|
+
* 删除某个启动入口已写入的 parallelPreloadSubpackages,用于重新收集前清理
|
|
13432
|
+
* 旧配置,避免下一轮真机预览仍携带上一轮结果。
|
|
13433
|
+
*
|
|
13434
|
+
* body: `{ entry }`(缺省按主包 `__GAME__` 处理)。
|
|
13435
|
+
*/
|
|
13436
|
+
const gameClearPreloadSubpackagesConfigRoute = {
|
|
13437
|
+
method: 'post',
|
|
13438
|
+
path: '/game/clear-preload-subpackages-config',
|
|
13439
|
+
handler: async (req, res) => {
|
|
13440
|
+
const entry = req.body?.entry || GAME_ENTRY;
|
|
13441
|
+
console.log('clear-preload-subpackages-config', { entry });
|
|
13442
|
+
try {
|
|
13443
|
+
const data = clearPreloadSubpackagesConfig(entry);
|
|
13444
|
+
res.send({ code: successCode, data });
|
|
13445
|
+
}
|
|
13446
|
+
catch (err) {
|
|
13447
|
+
res.send({
|
|
13448
|
+
code: errorCode,
|
|
13449
|
+
error: { message: err.message },
|
|
13450
|
+
});
|
|
13451
|
+
}
|
|
13452
|
+
},
|
|
13453
|
+
};
|
|
13454
|
+
|
|
13330
13455
|
const routes = [
|
|
13331
13456
|
gameAssetPreviewUrlRoute,
|
|
13332
13457
|
gameAssetsRoute,
|
|
@@ -13363,6 +13488,7 @@ const routes = [
|
|
|
13363
13488
|
gamePreloadSubpackagesConfigRoute,
|
|
13364
13489
|
gamePreloadSubpackageCandidatesRoute,
|
|
13365
13490
|
gameCollectPreloadSubpackagesRoute,
|
|
13491
|
+
gameClearPreloadSubpackagesConfigRoute,
|
|
13366
13492
|
];
|
|
13367
13493
|
/**
|
|
13368
13494
|
* Express 4 does not catch rejections from async route handlers — an
|
|
@@ -13444,9 +13570,9 @@ async function start() {
|
|
|
13444
13570
|
openUrl(url);
|
|
13445
13571
|
}
|
|
13446
13572
|
|
|
13447
|
-
async function dev() {
|
|
13573
|
+
async function dev(options = {}) {
|
|
13448
13574
|
await check();
|
|
13449
|
-
await init();
|
|
13575
|
+
await init({ clientKey: options.clientKey });
|
|
13450
13576
|
await start();
|
|
13451
13577
|
await compile();
|
|
13452
13578
|
listen$1();
|
|
@@ -13863,7 +13989,7 @@ async function upload({ clientKey, note = '--', dir, }) {
|
|
|
13863
13989
|
}
|
|
13864
13990
|
}
|
|
13865
13991
|
|
|
13866
|
-
var version = "0.4.
|
|
13992
|
+
var version = "0.4.3";
|
|
13867
13993
|
var pkg = {
|
|
13868
13994
|
version: version};
|
|
13869
13995
|
|
|
@@ -13950,14 +14076,15 @@ withVerboseOption(program
|
|
|
13950
14076
|
withVerboseOption(program
|
|
13951
14077
|
.option('--h5', t('cli.option.h5'))
|
|
13952
14078
|
.command('dev')
|
|
13953
|
-
.description(t('cli.command.dev.desc'))
|
|
13954
|
-
.
|
|
14079
|
+
.description(t('cli.command.dev.desc'))
|
|
14080
|
+
.option('-ck, --client-key <clientKey>', t('cli.command.dev.clientKey')))
|
|
14081
|
+
.action(async (cmd) => {
|
|
13955
14082
|
const options = program.opts();
|
|
13956
14083
|
if (options.h5) {
|
|
13957
14084
|
await dev$1();
|
|
13958
14085
|
}
|
|
13959
14086
|
else {
|
|
13960
|
-
await dev();
|
|
14087
|
+
await dev({ clientKey: cmd.clientKey });
|
|
13961
14088
|
}
|
|
13962
14089
|
checkUpdate();
|
|
13963
14090
|
});
|