diff --git a/packages/cli-platform-android/src/commands/runAndroid/index.ts b/packages/cli-platform-android/src/commands/runAndroid/index.ts index d207641b4..33134a143 100644 --- a/packages/cli-platform-android/src/commands/runAndroid/index.ts +++ b/packages/cli-platform-android/src/commands/runAndroid/index.ts @@ -61,7 +61,8 @@ async function runAndroid(_argv: Array, config: Config, args: Flags) { ); if (startPackager) { - await startServerInNewWindow( + // Awaiting this causes the CLI to hang indefinitely, so this must execute without await. + startServerInNewWindow( newPort, config.root, config.reactNativePath, diff --git a/packages/cli-tools/src/getDefaultUserTerminal.ts b/packages/cli-tools/src/getDefaultUserTerminal.ts index fb07ea1b7..7c60d5af8 100644 --- a/packages/cli-tools/src/getDefaultUserTerminal.ts +++ b/packages/cli-tools/src/getDefaultUserTerminal.ts @@ -11,6 +11,10 @@ const getDefaultUserTerminal = (): string | undefined => { return TERM_PROGRAM; } + if (os.platform() === 'win32') { + return 'cmd.exe'; + } + return TERM; }; diff --git a/packages/cli-tools/src/startServerInNewWindow.ts b/packages/cli-tools/src/startServerInNewWindow.ts index dee278827..def7bb8ea 100644 --- a/packages/cli-tools/src/startServerInNewWindow.ts +++ b/packages/cli-tools/src/startServerInNewWindow.ts @@ -103,7 +103,7 @@ function startServerInNewWindow( } if (isWindows) { // Awaiting this causes the CLI to hang indefinitely, so this must execute without await. - return execa('cmd.exe', ['/C', launchPackagerScript], { + return execa(terminal, ['/C', launchPackagerScript], { ...procConfig, detached: true, stdio: 'ignore',