From 8482eb9e57f44615b6d287184659b01f3ee72b98 Mon Sep 17 00:00:00 2001 From: Trevor Brindle Date: Thu, 9 Nov 2017 14:03:40 -0500 Subject: [PATCH] =?UTF-8?q?add=20=E2=80=94use-npm=20flag=20to=20bypass=20y?= =?UTF-8?q?arn=20(#3409)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add —use-npm flag to bypass yarn * add e2e test for —use-npm flag --- packages/create-react-app/createReactApp.js | 6 ++++-- tasks/e2e-installs.sh | 14 ++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/packages/create-react-app/createReactApp.js b/packages/create-react-app/createReactApp.js index 9ff7c08cf9e..e7dbbb35842 100755 --- a/packages/create-react-app/createReactApp.js +++ b/packages/create-react-app/createReactApp.js @@ -64,6 +64,7 @@ const program = new commander.Command(packageJson.name) '--scripts-version ', 'use a non-standard version of react-scripts' ) + .option('--use-npm') .allowUnknownOption() .on('--help', () => { console.log(` Only ${chalk.green('')} is required.`); @@ -133,10 +134,11 @@ createApp( projectName, program.verbose, program.scriptsVersion, + program.useNpm, hiddenProgram.internalTestingTemplate ); -function createApp(name, verbose, version, template) { +function createApp(name, verbose, version, useNpm, template) { const root = path.resolve(name); const appName = path.basename(root); @@ -159,7 +161,7 @@ function createApp(name, verbose, version, template) { JSON.stringify(packageJson, null, 2) ); - const useYarn = shouldUseYarn(); + const useYarn = useNpm ? false : shouldUseYarn(); const originalDirectory = process.cwd(); process.chdir(root); if (!useYarn && !checkThatNpmCanReadCwd()) { diff --git a/tasks/e2e-installs.sh b/tasks/e2e-installs.sh index f352a544848..489cadb37c9 100755 --- a/tasks/e2e-installs.sh +++ b/tasks/e2e-installs.sh @@ -145,6 +145,20 @@ exists node_modules/react-scripts grep '"version": "0.4.0"' node_modules/react-scripts/package.json checkDependencies +# ****************************************************************************** +# Test --use-npm flag +# ****************************************************************************** + +cd "$temp_app_path" +create_react_app --use-npm --scripts-version=0.4.0 test-use-npm-flag +cd test-use-npm-flag + +# Check corresponding scripts version is installed. +exists node_modules/react-scripts +[ ! -e "yarn.lock" ] && echo "yarn.lock correctly does not exist" +grep '"version": "0.4.0"' node_modules/react-scripts/package.json +checkDependencies + # ****************************************************************************** # Test --scripts-version with a tarball url # ******************************************************************************