Skip to content

Commit be509fa

Browse files
fix: check webpack installation before running cli (#1827)
* fix: check webpack installation before running cli * chore: rephrase message * chore(package-utils): add webpack to peerDependenciesMeta * refactor: cli import * fix: lint * chore: use logger Co-authored-by: Rishabh Chawla <[email protected]>
1 parent 77ff99b commit be509fa

File tree

4 files changed

+19
-5
lines changed

4 files changed

+19
-5
lines changed

packages/package-utils/package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@
4444
"@types/cross-spawn": "6.0.1"
4545
},
4646
"peerDependenciesMeta": {
47+
"webpack": {
48+
"optional": true
49+
},
4750
"@webpack-cli/info": {
4851
"optional": true
4952
},

packages/webpack-cli/bin/cli.js

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,22 @@
44
require('v8-compile-cache');
55
const importLocal = require('import-local');
66
const runCLI = require('../lib/bootstrap');
7+
const { yellow } = require('colorette');
8+
const { error } = require('../lib/utils/logger');
9+
const { packageExists, promptInstallation } = require('@webpack-cli/package-utils');
710

811
// Prefer the local installation of webpack-cli
912
if (importLocal(__filename)) {
1013
return;
1114
}
1215
process.title = 'webpack';
1316

14-
const [, , ...rawArgs] = process.argv;
15-
16-
runCLI(rawArgs);
17+
if (packageExists('webpack')) {
18+
const [, , ...rawArgs] = process.argv;
19+
runCLI(rawArgs);
20+
} else {
21+
promptInstallation('webpack', () => {
22+
error(`It looks like ${yellow('webpack')} is not installed.`);
23+
});
24+
return;
25+
}

packages/webpack-cli/lib/utils/Compiler.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
const webpack = require('webpack');
1+
const { packageExists } = require('@webpack-cli/package-utils');
2+
const webpack = packageExists('webpack') ? require('webpack') : undefined;
23
const logger = require('./logger');
34
const bailAndWatchWarning = require('./warnings/bailAndWatchWarning');
45
const { CompilerOutput } = require('./CompilerOutput');

packages/webpack-cli/lib/utils/cli-flags.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
const { cli } = require('webpack');
1+
const { packageExists } = require('@webpack-cli/package-utils');
2+
const cli = packageExists('webpack') ? require('webpack').cli : undefined;
23

34
const HELP_GROUP = 'help';
45
const BASIC_GROUP = 'basic';

0 commit comments

Comments
 (0)