From 007682f52109d4493a16c68414e8b8121ff84e19 Mon Sep 17 00:00:00 2001 From: Abdullah Al Jahid Date: Sun, 24 Dec 2023 18:37:18 +0600 Subject: [PATCH 1/2] Fix for `run-android` on windows. --- .../cli-platform-android/src/commands/runAndroid/index.ts | 2 +- packages/cli-tools/src/getDefaultUserTerminal.ts | 4 ++++ packages/cli-tools/src/startServerInNewWindow.ts | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/cli-platform-android/src/commands/runAndroid/index.ts b/packages/cli-platform-android/src/commands/runAndroid/index.ts index d207641b4..098f96098 100644 --- a/packages/cli-platform-android/src/commands/runAndroid/index.ts +++ b/packages/cli-platform-android/src/commands/runAndroid/index.ts @@ -61,7 +61,7 @@ async function runAndroid(_argv: Array, config: Config, args: Flags) { ); if (startPackager) { - await startServerInNewWindow( + 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', From 7d1ad7fbf7179002575fdcece9e29ec45b1902dc Mon Sep 17 00:00:00 2001 From: Abdullah Al Jahid Date: Wed, 27 Dec 2023 18:59:40 +0600 Subject: [PATCH 2/2] Comment added explaining why awaiting is not used --- packages/cli-platform-android/src/commands/runAndroid/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/cli-platform-android/src/commands/runAndroid/index.ts b/packages/cli-platform-android/src/commands/runAndroid/index.ts index 098f96098..33134a143 100644 --- a/packages/cli-platform-android/src/commands/runAndroid/index.ts +++ b/packages/cli-platform-android/src/commands/runAndroid/index.ts @@ -61,6 +61,7 @@ async function runAndroid(_argv: Array, config: Config, args: Flags) { ); if (startPackager) { + // Awaiting this causes the CLI to hang indefinitely, so this must execute without await. startServerInNewWindow( newPort, config.root,