fix: use execFileSync to preserve spaces in CLI arguments

Replace execSync with execFileSync in npx wrapper so that
argument values containing spaces (e.g. --user-name "CI Bot")
are passed as discrete array elements instead of being split
by the shell.

Fixes #2066

Signed-off-by: majiayu000 <1835304752@qq.com>
This commit is contained in:
majiayu000 2026-03-21 19:53:58 +08:00
parent ad9cb7a177
commit 4d153c35da
No known key found for this signature in database
GPG Key ID: 29C2AE46ADC3B14B
1 changed files with 2 additions and 2 deletions

View File

@ -5,7 +5,7 @@
* This file ensures proper execution when run via npx from GitHub or npm registry * This file ensures proper execution when run via npx from GitHub or npm registry
*/ */
const { execSync } = require('node:child_process'); const { execFileSync } = require('node:child_process');
const path = require('node:path'); const path = require('node:path');
const fs = require('node:fs'); const fs = require('node:fs');
@ -25,7 +25,7 @@ if (isNpxExecution) {
try { try {
// Execute CLI from user's working directory (process.cwd()), not npm cache // Execute CLI from user's working directory (process.cwd()), not npm cache
execSync(`node "${bmadCliPath}" ${args.join(' ')}`, { execFileSync('node', [bmadCliPath, ...args], {
stdio: 'inherit', stdio: 'inherit',
cwd: process.cwd(), // This preserves the user's working directory cwd: process.cwd(), // This preserves the user's working directory
}); });