From 35a4d64c4bf6bf93bc42277d06b21df8c340fc76 Mon Sep 17 00:00:00 2001 From: "Sakamoto, Kazunori" Date: Mon, 8 Dec 2025 13:00:08 +0900 Subject: [PATCH 1/3] fix: fix testStart --- packages/wb/src/scripts/execution/baseScripts.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/wb/src/scripts/execution/baseScripts.ts b/packages/wb/src/scripts/execution/baseScripts.ts index 5255455f..70f46a2a 100644 --- a/packages/wb/src/scripts/execution/baseScripts.ts +++ b/packages/wb/src/scripts/execution/baseScripts.ts @@ -84,7 +84,8 @@ export abstract class BaseScripts { } async testStart(project: Project, argv: ScriptArgv): Promise { await checkAndKillPortProcess(project.env.PORT, project); - return `YARN concurrently --kill-others --raw --success first "${this.startDevProtected(project, argv)}" "${this.waitApp(project)}"`; + // Use empty NODE_ENV to avoid "production" mode in Blitz.js. + return `NODE_ENV="" YARN concurrently --kill-others --raw --success first "${this.startDevProtected(project, argv)}" "${this.waitApp(project)}"`; } async testE2EProtected( From 4d0bb49111f4321ce485f9ba4cdd39653fa15a04 Mon Sep 17 00:00:00 2001 From: "Sakamoto, Kazunori" Date: Mon, 8 Dec 2025 13:04:02 +0900 Subject: [PATCH 2/3] fix: stop retries on interrupt --- packages/wb/src/commands/retry.ts | 5 +++++ packages/wb/src/scripts/run.ts | 3 +++ 2 files changed, 8 insertions(+) diff --git a/packages/wb/src/commands/retry.ts b/packages/wb/src/commands/retry.ts index 0e1af1f3..d09a5d6a 100644 --- a/packages/wb/src/commands/retry.ts +++ b/packages/wb/src/commands/retry.ts @@ -48,6 +48,11 @@ export const retryCommand: CommandModule< // TODO: should we add single quotes around each argument? lastStatus = await runWithSpawn(cmdAndArgs.join(' '), project, argv, { exitIfFailed: false, + onSignal: (signal) => { + if (signal) { + process.exit(1); + } + }, }); if (lastStatus === 0) return; } diff --git a/packages/wb/src/scripts/run.ts b/packages/wb/src/scripts/run.ts index 5fe302da..76ab30b9 100644 --- a/packages/wb/src/scripts/run.ts +++ b/packages/wb/src/scripts/run.ts @@ -10,6 +10,7 @@ import { isRunningOnBun, packageManagerWithRun } from '../utils/runtime.js'; interface Options { ci?: boolean; exitIfFailed?: boolean; + onSignal?: (signal: NodeJS.Signals | null) => void; forceColor?: boolean; timeout?: number; } @@ -43,6 +44,7 @@ export async function runWithSpawn( killOnExit: true, verbose: argv.verbose, }); + opts.onSignal?.(ret.signal); printFinishedAndExitIfNeeded(normalizedScript.printable, ret.status, opts); return ret.status ?? 1; } @@ -75,6 +77,7 @@ export function runWithSpawnInParallel( killOnExit: true, verbose: argv.verbose, }); + opts.onSignal?.(ret.signal); printStart(normalizedScript.printable, project, 'Started (log)'); if (argv.verbose) { printStart(normalizedScript.runnable, project, 'Started (raw)', true); From 29846a7e03cc7a30fa0fad8031f7dc1747bb478a Mon Sep 17 00:00:00 2001 From: "Sakamoto, Kazunori" Date: Mon, 8 Dec 2025 13:08:32 +0900 Subject: [PATCH 3/3] Update baseScripts.ts --- packages/wb/src/scripts/execution/baseScripts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/wb/src/scripts/execution/baseScripts.ts b/packages/wb/src/scripts/execution/baseScripts.ts index 70f46a2a..4cde2796 100644 --- a/packages/wb/src/scripts/execution/baseScripts.ts +++ b/packages/wb/src/scripts/execution/baseScripts.ts @@ -84,7 +84,7 @@ export abstract class BaseScripts { } async testStart(project: Project, argv: ScriptArgv): Promise { await checkAndKillPortProcess(project.env.PORT, project); - // Use empty NODE_ENV to avoid "production" mode in Blitz.js. + // Use empty NODE_ENV to avoid "production" mode in some frameworks like Blitz.js. return `NODE_ENV="" YARN concurrently --kill-others --raw --success first "${this.startDevProtected(project, argv)}" "${this.waitApp(project)}"`; }