diff --git a/.vscode/launch.json b/.vscode/launch.json index bab4f22e0..5d5db1d63 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -127,6 +127,19 @@ "cwd": "${workspaceFolder}", "console": "integratedTerminal", "env": {} + }, + { + "type": "node", + "request": "launch", + "name": "Dev Launch CLI", + "runtimeExecutable": "npm", + "runtimeArgs": ["run", "dev"], + "skipFiles": ["/**"], + "cwd": "${workspaceFolder}", + "console": "integratedTerminal", + "env": { + "GEMINI_SANDBOX": "false" + } } ], "inputs": [ diff --git a/scripts/dev.js b/scripts/dev.js index e0adcaea0..8432a32ce 100644 --- a/scripts/dev.js +++ b/scripts/dev.js @@ -67,13 +67,16 @@ register('${loaderUrl}', pathToFileURL('./')); `; writeFileSync(registerPath, registerCode); +// Preserve existing NODE_OPTIONS (e.g. VS Code debugger injects --inspect flags via NODE_OPTIONS) +const existingNodeOptions = process.env.NODE_OPTIONS || ''; +const importFlag = `--import ${pathToFileURL(registerPath).href}`; + const env = { ...process.env, DEV: 'true', CLI_VERSION: 'dev', NODE_ENV: 'development', - // Use --import with register() instead of deprecated --loader - NODE_OPTIONS: `--import ${pathToFileURL(registerPath).href}`, + NODE_OPTIONS: `${existingNodeOptions} ${importFlag}`.trim(), }; const nodeArgs = [tsxPath, cliEntry, ...process.argv.slice(2)];