From 61bc24ed130a22a77e5394cda0bce4bf6d19b8a1 Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Fri, 4 Jun 2021 21:22:45 +0300 Subject: [PATCH 1/2] fix: not found module after ask installation --- .../webpack-cli/lib/utils/package-exists.js | 23 +++++++++++++++---- .../lib/utils/prompt-installation.js | 3 ++- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/packages/webpack-cli/lib/utils/package-exists.js b/packages/webpack-cli/lib/utils/package-exists.js index 532b619c8b2..5f17b718415 100644 --- a/packages/webpack-cli/lib/utils/package-exists.js +++ b/packages/webpack-cli/lib/utils/package-exists.js @@ -1,9 +1,24 @@ +const fs = require("fs"); +const path = require("path"); + function packageExists(packageName) { - try { - return require.resolve(packageName); - } catch (error) { - return false; + if (process.versions.pnp) { + return true; } + + let dir = __dirname; + + do { + try { + if (fs.statSync(path.join(dir, "node_modules", packageName)).isDirectory()) { + return true; + } + } catch (_error) { + // Nothing + } + } while (dir !== (dir = path.dirname(dir))); + + return false; } module.exports = packageExists; diff --git a/packages/webpack-cli/lib/utils/prompt-installation.js b/packages/webpack-cli/lib/utils/prompt-installation.js index 10794efe224..86b85fc9bce 100644 --- a/packages/webpack-cli/lib/utils/prompt-installation.js +++ b/packages/webpack-cli/lib/utils/prompt-installation.js @@ -22,6 +22,7 @@ async function promptInstallation(packageName, preMessage) { const commandToBeRun = `${packageManager} ${[ packageManager === "yarn" ? "add" : "install", "-D", + "--ignore-workspace-root-check", packageName, ].join(" ")}`; const { colors } = utils; @@ -51,7 +52,7 @@ async function promptInstallation(packageName, preMessage) { process.exit(2); } - return utils.packageExists(packageName); + return packageName; } process.exit(2); From 5118b05b1b67c5c4a2eb313c8cdb34c008f7cb61 Mon Sep 17 00:00:00 2001 From: evilebottnawi Date: Fri, 4 Jun 2021 21:33:08 +0300 Subject: [PATCH 2/2] fix: code --- packages/webpack-cli/lib/utils/prompt-installation.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/webpack-cli/lib/utils/prompt-installation.js b/packages/webpack-cli/lib/utils/prompt-installation.js index 86b85fc9bce..e870019335a 100644 --- a/packages/webpack-cli/lib/utils/prompt-installation.js +++ b/packages/webpack-cli/lib/utils/prompt-installation.js @@ -22,7 +22,6 @@ async function promptInstallation(packageName, preMessage) { const commandToBeRun = `${packageManager} ${[ packageManager === "yarn" ? "add" : "install", "-D", - "--ignore-workspace-root-check", packageName, ].join(" ")}`; const { colors } = utils;