Skip to content

Commit

Permalink
Stop yarn error message appearing for Windows users of local-cli
Browse files Browse the repository at this point in the history
Summary:
On windows, recent versions of local-cli will display a yarn error to stderr when starting the packager (see https://github.com/expo/xde/issues/91, expo/create-react-native-app#101, expo/create-react-native-app#113 (comment) for examples of users hitting this in the wild), even though no package management action is being taken.

From what I can tell this is what happens:

* [`local-cli/util/yarn.js` does not ignore stderr on Windows](https://github.com/facebook/react-native/blob/6fa87134fc68fd447e33a01a538ae0af6710e5d2/local-cli/util/yarn.js#L25)
* [`local-cli/util/PackageManager.js` calls the above function when it's require'd](https://github.com/facebook/react-native/blob/6fa87134fc68fd447e33a01a538ae0af6710e5d2/local-cli/util/PackageManager.js#L20)

For Windows users who don't have yarn installed, this means that the 'yarn is not recognized as an internal or external command..." error displays wh
Closes facebook#13355

Differential Revision: D4848084

Pulled By: hramos

fbshipit-source-id: f32176354e0bd7ff6d7009ea30dca64ff23ae3d5
  • Loading branch information
anp authored and thotegowda committed May 7, 2017
1 parent a06a64d commit f92f320
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 10 deletions.
10 changes: 5 additions & 5 deletions local-cli/util/PackageManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,6 @@ const spawnOpts = {
stdin: 'inherit',
};

const projectDir = process.cwd();
const isYarnAvailable =
yarn.getYarnVersionIfAvailable() &&
yarn.isGlobalCliUsingYarn(projectDir);

/**
* Execute npm or yarn command
*
Expand All @@ -30,6 +25,11 @@ const isYarnAvailable =
function callYarnOrNpm(yarnCommand, npmCommand) {
let command;

const projectDir = process.cwd();
const isYarnAvailable =
yarn.getYarnVersionIfAvailable() &&
yarn.isGlobalCliUsingYarn(projectDir);

if (isYarnAvailable) {
command = yarnCommand;
} else {
Expand Down
8 changes: 3 additions & 5 deletions local-cli/util/yarn.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,9 @@ function getYarnVersionIfAvailable() {
let yarnVersion;
try {
// execSync returns a Buffer -> convert to string
if (process.platform.startsWith('win')) {
yarnVersion = (execSync('yarn --version').toString() || '').trim();
} else {
yarnVersion = (execSync('yarn --version 2>/dev/null').toString() || '').trim();
}
yarnVersion = (execSync('yarn --version', {
stdio: [ 0, 'pipe', 'ignore', ]
}).toString() || '').trim();
} catch (error) {
return null;
}
Expand Down

0 comments on commit f92f320

Please sign in to comment.