diff --git a/packages/webpack-cli/lib/groups/StatsGroup.js b/packages/webpack-cli/lib/groups/StatsGroup.js index b8654e8c5c5..024d57c6383 100644 --- a/packages/webpack-cli/lib/groups/StatsGroup.js +++ b/packages/webpack-cli/lib/groups/StatsGroup.js @@ -15,14 +15,10 @@ class StatsGroup extends GroupHelper { resolveOptions() { if (this.args.verbose && this.args.stats) { logger.warn('Conflict between "verbose" and "stats" options. Using verbose.'); - this.opts.option.stats = { - verbose: true, - }; + this.opts.options.stats = 'verbose'; } else { if (this.args.verbose) { - this.opts.option.stats = { - verbose: true, - }; + this.opts.options.stats = 'verbose'; } else if (!StatsGroup.validOptions().includes(this.args.stats)) { logger.warn(`'${this.args.stats}' is invalid value for stats. Using 'normal' option for stats`); this.opts.options.stats = 'normal'; diff --git a/packages/webpack-cli/lib/utils/cli-flags.js b/packages/webpack-cli/lib/utils/cli-flags.js index 56dbfa8bbd4..d31d5ecb7a0 100644 --- a/packages/webpack-cli/lib/utils/cli-flags.js +++ b/packages/webpack-cli/lib/utils/cli-flags.js @@ -237,7 +237,6 @@ module.exports = { name: 'stats', usage: '--stats verbose', type: String, - defaultValue: 'normal', group: DISPLAY_GROUP, description: 'It instructs webpack on how to treat the stats', link: 'https://webpack.js.org/configuration/stats/#stats', diff --git a/test/stats/stats.test.js b/test/stats/stats.test.js index 656a6633825..6b9c060accd 100644 --- a/test/stats/stats.test.js +++ b/test/stats/stats.test.js @@ -45,6 +45,13 @@ describe('stats flag', () => { expect(stdout).toBeTruthy(); }); + it('should warn when --verbose & --stats are passed together', () => { + const { stderr, stdout } = run(__dirname, ['--verbose', '--stats', 'normal']); + expect(stderr).toBeTruthy(); + expect(stderr).toContain('Conflict between "verbose" and "stats" options'); + expect(stdout).toBeTruthy(); + }); + it('should warn when an unknown flag stats value is passed', () => { const { stderr, stdout } = run(__dirname, ['--stats', 'foo']); expect(stderr).toBeTruthy(); diff --git a/test/verbose/index.js b/test/verbose/index.js new file mode 100644 index 00000000000..c80ec0847f6 --- /dev/null +++ b/test/verbose/index.js @@ -0,0 +1 @@ +console.log('test'); \ No newline at end of file diff --git a/test/verbose/verbose-flag.test.js b/test/verbose/verbose-flag.test.js new file mode 100644 index 00000000000..f00c0eda958 --- /dev/null +++ b/test/verbose/verbose-flag.test.js @@ -0,0 +1,11 @@ +'use strict'; +// eslint-disable-next-line node/no-unpublished-require +const { run } = require('../utils/test-utils'); + +describe('verbose flag', () => { + it('should accept --verbose', () => { + const { stderr, stdout } = run(__dirname, ['--verbose']); + expect(stderr).toBeFalsy(); + expect(stdout).toBeTruthy(); + }); +});