From e4cc10fbf8bdc418518ba0b0cd54b93224dacc47 Mon Sep 17 00:00:00 2001 From: Nitin Kumar Date: Thu, 24 Sep 2020 14:02:12 +0530 Subject: [PATCH 1/6] fix: check webpack installation before running cli --- packages/webpack-cli/bin/cli.js | 14 +++++++++++--- packages/webpack-cli/lib/utils/Compiler.js | 3 ++- packages/webpack-cli/lib/utils/cli-flags.js | 7 ++++++- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/packages/webpack-cli/bin/cli.js b/packages/webpack-cli/bin/cli.js index 960fc1fad39..c4fec910c73 100755 --- a/packages/webpack-cli/bin/cli.js +++ b/packages/webpack-cli/bin/cli.js @@ -4,6 +4,8 @@ require('v8-compile-cache'); const importLocal = require('import-local'); const runCLI = require('../lib/bootstrap'); +const { yellow } = require('colorette'); +const { packageExists, promptInstallation } = require('@webpack-cli/package-utils'); // Prefer the local installation of webpack-cli if (importLocal(__filename)) { @@ -11,6 +13,12 @@ if (importLocal(__filename)) { } process.title = 'webpack'; -const [, , ...rawArgs] = process.argv; - -runCLI(rawArgs); +if (packageExists('webpack')) { + const [, , ...rawArgs] = process.argv; + runCLI(rawArgs); +} else { + promptInstallation('webpack', () => { + console.error(`Looks like ${yellow('webpack')} is not installed.`); + }); + return; +} diff --git a/packages/webpack-cli/lib/utils/Compiler.js b/packages/webpack-cli/lib/utils/Compiler.js index 7b34f078b28..7c18dd25e5a 100644 --- a/packages/webpack-cli/lib/utils/Compiler.js +++ b/packages/webpack-cli/lib/utils/Compiler.js @@ -1,4 +1,5 @@ -const webpack = require('webpack'); +const { packageExists } = require('@webpack-cli/package-utils'); +const webpack = packageExists('webpack') ? require('webpack') : undefined; const logger = require('./logger'); const bailAndWatchWarning = require('./warnings/bailAndWatchWarning'); const { CompilerOutput } = require('./CompilerOutput'); diff --git a/packages/webpack-cli/lib/utils/cli-flags.js b/packages/webpack-cli/lib/utils/cli-flags.js index 9bd3201edbc..1e2847590a4 100644 --- a/packages/webpack-cli/lib/utils/cli-flags.js +++ b/packages/webpack-cli/lib/utils/cli-flags.js @@ -1,4 +1,4 @@ -const { cli } = require('webpack'); +const { packageExists } = require('@webpack-cli/package-utils'); const HELP_GROUP = 'help'; const CONFIG_GROUP = 'config'; @@ -7,6 +7,11 @@ const OUTPUT_GROUP = 'output'; const ADVANCED_GROUP = 'advanced'; const ZERO_CONFIG_GROUP = 'zero-config'; +let cli = undefined; +if (packageExists('webpack')) { + cli = require('webpack').cli; +} + const groups = { HELP_GROUP, CONFIG_GROUP, From 9a11d3337e747220bc8c9883260a853ac0291b04 Mon Sep 17 00:00:00 2001 From: Nitin Kumar Date: Thu, 24 Sep 2020 14:38:37 +0530 Subject: [PATCH 2/6] chore: rephrase message --- packages/webpack-cli/bin/cli.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/webpack-cli/bin/cli.js b/packages/webpack-cli/bin/cli.js index c4fec910c73..35aa87d18e4 100755 --- a/packages/webpack-cli/bin/cli.js +++ b/packages/webpack-cli/bin/cli.js @@ -18,7 +18,7 @@ if (packageExists('webpack')) { runCLI(rawArgs); } else { promptInstallation('webpack', () => { - console.error(`Looks like ${yellow('webpack')} is not installed.`); + console.error(`It looks like ${yellow('webpack')} is not installed.`); }); return; } From 1207dc87ee9d847e1fb6aca9cfe4151221ab9d52 Mon Sep 17 00:00:00 2001 From: Nitin Kumar Date: Fri, 25 Sep 2020 11:56:48 +0530 Subject: [PATCH 3/6] chore(package-utils): add webpack to peerDependenciesMeta --- packages/package-utils/package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/package-utils/package.json b/packages/package-utils/package.json index 730aedfc282..da83a6f72b3 100644 --- a/packages/package-utils/package.json +++ b/packages/package-utils/package.json @@ -44,6 +44,9 @@ "@types/cross-spawn": "6.0.1" }, "peerDependenciesMeta": { + "webpack": { + "optional": true + }, "@webpack-cli/info": { "optional": true }, From eecd833e9c782218dc3de232d41c318476c1cbc6 Mon Sep 17 00:00:00 2001 From: Nitin Kumar Date: Fri, 25 Sep 2020 11:59:25 +0530 Subject: [PATCH 4/6] refactor: cli import --- packages/webpack-cli/lib/utils/cli-flags.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/packages/webpack-cli/lib/utils/cli-flags.js b/packages/webpack-cli/lib/utils/cli-flags.js index 1e2847590a4..950bebef263 100644 --- a/packages/webpack-cli/lib/utils/cli-flags.js +++ b/packages/webpack-cli/lib/utils/cli-flags.js @@ -1,4 +1,5 @@ const { packageExists } = require('@webpack-cli/package-utils'); +const cli = packageExists('webpack') ? require('webpack').cli : undefined const HELP_GROUP = 'help'; const CONFIG_GROUP = 'config'; @@ -7,11 +8,6 @@ const OUTPUT_GROUP = 'output'; const ADVANCED_GROUP = 'advanced'; const ZERO_CONFIG_GROUP = 'zero-config'; -let cli = undefined; -if (packageExists('webpack')) { - cli = require('webpack').cli; -} - const groups = { HELP_GROUP, CONFIG_GROUP, From eb9f551d4e9bc9bf2434449aba85ee05c6779495 Mon Sep 17 00:00:00 2001 From: Nitin Kumar Date: Fri, 25 Sep 2020 12:10:53 +0530 Subject: [PATCH 5/6] fix: lint --- packages/webpack-cli/lib/utils/cli-flags.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/webpack-cli/lib/utils/cli-flags.js b/packages/webpack-cli/lib/utils/cli-flags.js index 950bebef263..fc950acc9b6 100644 --- a/packages/webpack-cli/lib/utils/cli-flags.js +++ b/packages/webpack-cli/lib/utils/cli-flags.js @@ -1,5 +1,5 @@ const { packageExists } = require('@webpack-cli/package-utils'); -const cli = packageExists('webpack') ? require('webpack').cli : undefined +const cli = packageExists('webpack') ? require('webpack').cli : undefined; const HELP_GROUP = 'help'; const CONFIG_GROUP = 'config'; From a0850424426244d366a19c649dff66f18b4916f1 Mon Sep 17 00:00:00 2001 From: Nitin Kumar Date: Fri, 25 Sep 2020 12:35:28 +0530 Subject: [PATCH 6/6] chore: use logger --- packages/webpack-cli/bin/cli.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/webpack-cli/bin/cli.js b/packages/webpack-cli/bin/cli.js index 35aa87d18e4..3cc31f043ec 100755 --- a/packages/webpack-cli/bin/cli.js +++ b/packages/webpack-cli/bin/cli.js @@ -5,6 +5,7 @@ require('v8-compile-cache'); const importLocal = require('import-local'); const runCLI = require('../lib/bootstrap'); const { yellow } = require('colorette'); +const { error } = require('../lib/utils/logger'); const { packageExists, promptInstallation } = require('@webpack-cli/package-utils'); // Prefer the local installation of webpack-cli @@ -18,7 +19,7 @@ if (packageExists('webpack')) { runCLI(rawArgs); } else { promptInstallation('webpack', () => { - console.error(`It looks like ${yellow('webpack')} is not installed.`); + error(`It looks like ${yellow('webpack')} is not installed.`); }); return; }