From 557ad05ae8168255b57698bdd2d98cbc7b53812d Mon Sep 17 00:00:00 2001 From: Alexander Akait <4567934+alexander-akait@users.noreply.github.com> Date: Sat, 5 Jun 2021 16:15:52 +0300 Subject: [PATCH] fix: not found module after ask installation (#2761) --- .../webpack-cli/lib/utils/package-exists.js | 23 +++++++++++++++---- .../lib/utils/prompt-installation.js | 2 +- 2 files changed, 20 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..e870019335a 100644 --- a/packages/webpack-cli/lib/utils/prompt-installation.js +++ b/packages/webpack-cli/lib/utils/prompt-installation.js @@ -51,7 +51,7 @@ async function promptInstallation(packageName, preMessage) { process.exit(2); } - return utils.packageExists(packageName); + return packageName; } process.exit(2);