diff --git a/scripts/lib.js b/scripts/lib.js index dca6f77..5b3f3cd 100644 --- a/scripts/lib.js +++ b/scripts/lib.js @@ -99,10 +99,19 @@ export function parseFlags(argv, spec = {}) { flags[name] = true; continue; } - if (eq === -1) i += 1; - const value = eq === -1 ? argv[i] : arg.slice(eq + 1); + if (eq !== -1) { + // --key=value:等號右邊就是值,即使它本身以 -- 開頭也沒有歧義。 + // commit 訊息、PR 描述這種內容裡出現 --flag 是常態,不該因此被當成打錯 flag。 + flags[name] = arg.slice(eq + 1); + continue; + } + i += 1; + const value = argv[i]; if (value === undefined || value.startsWith('--')) { - throw new ScriptError('MISSING_FLAG', `--${name} 需要一個值`); + throw new ScriptError( + 'MISSING_FLAG', + `--${name} 需要一個值;值本身以 -- 開頭時請改用 --${name}=值 的寫法`, + ); } flags[name] = value; }