From cd3db48ef36549f7afe198f48c8c80f33b9935ba Mon Sep 17 00:00:00 2001 From: Marc Redemske Date: Mon, 4 Jul 2022 01:52:33 +0200 Subject: [PATCH] fix(create): make `--packageManager` flag work (#3498) --- packages/create/index.js | 10 +++++++++- packages/create/test.js | 10 ++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/packages/create/index.js b/packages/create/index.js index 39741a743f..479ecd7f14 100644 --- a/packages/create/index.js +++ b/packages/create/index.js @@ -75,7 +75,15 @@ function main(argv, error = console.error, log = console.log) { } // Which package manager will be used in the new project - const pkgMgr = args['packageManager'] || detectRunningUnderYarn() ? 'yarn' : 'npm'; + let pkgMgr = args['packageManager']; + + if (!pkgMgr) { + pkgMgr = detectRunningUnderYarn() ? 'yarn' : 'npm'; + } else if(pkgMgr !== 'yarn' && pkgMgr !== 'npm') { + error('Please select between \'yarn\' and \'npm\' when providing --packageManager'); + usage(error); + return 1; + } log_verbose('Running with', process.argv); log_verbose('Environment', process.env); diff --git a/packages/create/test.js b/packages/create/test.js index 80e7276992..f8330f1eda 100644 --- a/packages/create/test.js +++ b/packages/create/test.js @@ -70,6 +70,16 @@ wkspContent = read('default_to_yarn/WORKSPACE'); if (wkspContent.indexOf('yarn_install(') < 0) { fail('should use yarn by default'); } + +exitCode = main(['use_npm_with_yarn', '--packageManager=npm']); +if (exitCode != 0) fail('should be success'); +wkspContent = read('use_npm_with_yarn/WORKSPACE'); +if (wkspContent.indexOf('npm_install(') < 0) { + fail('should use npm as selected'); +} + +exitCode = main(['neither_yarn_nor_npm', '--packageManager=foo']); +if (exitCode != 1) fail('should exit 1 when selecting neither \'yarn\' nor \'npm\''); // TODO: run bazel in the new directory to verify a build works exitCode = main(['--typescript', 'with_ts'], captureError);