From ccb8d4c761c46d64eff27e987341be2b96a01d6b Mon Sep 17 00:00:00 2001 From: jamesgeorge007 Date: Mon, 7 Jun 2021 23:41:02 +0530 Subject: [PATCH] chore: choose default installer based on the lock file presence --- packages/generators/src/init-generator.ts | 4 +++- packages/webpack-cli/lib/utils/get-available-installers.js | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/generators/src/init-generator.ts b/packages/generators/src/init-generator.ts index 5692aaf0a9a..e820e367146 100644 --- a/packages/generators/src/init-generator.ts +++ b/packages/generators/src/init-generator.ts @@ -100,12 +100,14 @@ export default class InitGenerator extends CustomGenerator { } public async installPlugins(): Promise { + // Prompt for the package manager of choice + const defaultPackager = this.utils.getPackageManager(); const { packager } = await Question.List( this, "packager", "Pick a package manager:", this.utils.getAvailableInstallers(), - "npm", + defaultPackager, false, ); const opts: { diff --git a/packages/webpack-cli/lib/utils/get-available-installers.js b/packages/webpack-cli/lib/utils/get-available-installers.js index 900d7987ea6..d2ee92414c5 100644 --- a/packages/webpack-cli/lib/utils/get-available-installers.js +++ b/packages/webpack-cli/lib/utils/get-available-installers.js @@ -2,7 +2,7 @@ const { sync } = require("execa"); const utils = require("./"); -function isPmInstalled(packageManager) { +function hasPmInstalled(packageManager) { try { sync(packageManager, ["--version"]); return packageManager; @@ -13,7 +13,7 @@ function isPmInstalled(packageManager) { function getAvailableInstallers() { const installers = ["npm", "yarn", "pnpm"]; - const availableInstallers = installers.filter((installer) => isPmInstalled(installer)); + const availableInstallers = installers.filter((installer) => hasPmInstalled(installer)); if (!availableInstallers.length) { utils.logger.error("No package manager found.");