Launch the packager with `react-native run-android` on Windows

Summary:
Adds support for launching the packager in a new window on Windows.

**Test plan (required)**

Tested that the packager is launched in a completely independent process. This means that exiting the `react-native run-android` command should not close the packager window and it should exit properly when completed even if the packager window is still opened. Pretty much made sure it behaves exactly like on mac.

Also tested that an error in the packager will not close the window immediately to show the error stack trace.
Closes https://github.com/facebook/react-native/pull/7129

Differential Revision: D3240628

Pulled By: mkonicek

fb-gh-sync-id: 007582250536481d2b2376f9a201f8f415fc1080
fbshipit-source-id: 007582250536481d2b2376f9a201f8f415fc1080
This commit is contained in:
Janic Duplessis 2016-04-29 04:13:30 -07:00 коммит произвёл Facebook Github Bot 0
Родитель 3a5457cd7c
Коммит 891b87e7fb
2 изменённых файлов: 20 добавлений и 8 удалений

Просмотреть файл

@ -159,8 +159,12 @@ function buildAndRun(args, reject) {
function startServerInNewWindow() {
var yargV = require('yargs').argv;
const scriptFile = /^win/.test(process.platform) ?
'launchPackager.bat' :
'launchPackager.command';
const launchPackagerScript = path.resolve(
__dirname, '..', '..', 'packager', 'launchPackager.command'
__dirname, '..', '..', 'packager', scriptFile
);
if (process.platform === 'darwin') {
@ -176,13 +180,9 @@ function startServerInNewWindow() {
return child_process.spawn('sh', [launchPackagerScript],{detached: true});
} else if (/^win/.test(process.platform)) {
console.log(chalk.yellow('Starting the packager in a new window ' +
'is not supported on Windows yet.\nPlease start it manually using ' +
'\'react-native start\'.'));
console.log('We believe the best Windows ' +
'support will come from a community of people\nusing React Native on ' +
'Windows on a daily basis.\n' +
'Would you be up for sending a pull request?');
return child_process.spawn(
'cmd.exe', ['/C', 'start', launchPackagerScript], {detached: true, stdio: 'ignore'}
);
} else {
console.log(chalk.red(`Cannot start the packager. Unknown platform ${process.platform}`));
}

Просмотреть файл

@ -0,0 +1,12 @@
:: Copyright (c) 2015-present, Facebook, Inc.
:: All rights reserved.
::
:: This source code is licensed under the BSD-style license found in the
:: LICENSE file in the root directory of this source tree. An additional grant
:: of patent rights can be found in the PATENTS file in the same directory.
@echo off
title React Packager
node "%~dp0..\local-cli\cli.js" start
pause
exit