Skip to content

Commit

Permalink
fix: watch
Browse files Browse the repository at this point in the history
fix: a
  • Loading branch information
snitin315 committed Sep 19, 2020
1 parent 6c2aea3 commit 52b7029
Show file tree
Hide file tree
Showing 11 changed files with 45 additions and 23 deletions.
3 changes: 3 additions & 0 deletions packages/webpack-cli/lib/groups/BasicGroup.js
Expand Up @@ -36,6 +36,9 @@ class BasicGroup extends GroupHelper {
if (arg === 'name') {
options.name = args[arg];
}
if (arg === 'watch') {
options.watch = true;
}
if (arg === 'entry') {
options[arg] = this.resolveFilePath(args[arg], 'index.js');
if (options[arg].length === 0) {
Expand Down
6 changes: 0 additions & 6 deletions packages/webpack-cli/lib/groups/ConfigGroup.js
Expand Up @@ -127,12 +127,6 @@ class ConfigGroup extends GroupHelper {
newOptionsObject['options'] = configOptions;
}

//warn the user if bail and watch both are used together
const { bail, watch } = newOptionsObject['options'];
if (bail && watch) {
logger.warn('You are using "bail" with "watch". "bail" will still exit webpack when the first error is found.');
}

if (configOptions && configPath.includes('.webpack')) {
const currentPath = configPath;
const parentContext = dirname(currentPath).split(sep).slice(0, -1).join(sep);
Expand Down
8 changes: 3 additions & 5 deletions packages/webpack-cli/lib/utils/Compiler.js
@@ -1,5 +1,6 @@
const webpack = require('webpack');
const logger = require('./logger');
const bailAndWatchWarning = require('./warnings/bailAndWatchWarning');
const { CompilerOutput } = require('./CompilerOutput');

class Compiler {
Expand Down Expand Up @@ -117,16 +118,13 @@ class Compiler {
return interactive(options, outputOptions);
}

//warn the user if bail and watch both are used together
if (this.compiler.options.bail && outputOptions.watch) {
logger.warn('You are using "bail" with "watch". "bail" will still exit webpack when the first error is found.');
}

if (this.compiler.compilers) {
this.compiler.compilers.forEach((comp, idx) => {
bailAndWatchWarning(comp); //warn the user if bail and watch both are used together
this.setUpHookForCompilation(comp, outputOptions, options[idx]);
});
} else {
bailAndWatchWarning(this.compiler);
this.setUpHookForCompilation(this.compiler, outputOptions, options);
}

Expand Down
@@ -0,0 +1,7 @@
const logger = require('../logger');

module.exports = (compiler) => {
if (compiler.options.bail && compiler.options.watch) {
logger.warn('You are using "bail" with "watch". "bail" will still exit webpack when the first error is found.');
}
};
11 changes: 9 additions & 2 deletions test/bail/bail-and-watch-warning.test.js
Expand Up @@ -3,8 +3,15 @@
const { run } = require('../utils/test-utils');

describe('bail and watch warning', () => {
it('should log warning if bail and watch both options are true', () => {
const { stderr, stdout } = run(__dirname, ['-c', 'webpack.config.js']);
it('should log warning in case of single compiler', () => {
const { stderr, stdout } = run(__dirname, ['-c', 'single-webpack.config.js']);

expect(stderr).toContain(`You are using "bail" with "watch". "bail" will still exit webpack when the first error is found.`);
expect(stdout).toBeTruthy();
});

it('should log warning in case of multiple compilers', () => {
const { stderr, stdout } = run(__dirname, ['-c', 'multi-webpack.config.js']);

expect(stderr).toContain(`You are using "bail" with "watch". "bail" will still exit webpack when the first error is found.`);
expect(stdout).toBeTruthy();
Expand Down
1 change: 0 additions & 1 deletion test/bail/main.js

This file was deleted.

20 changes: 20 additions & 0 deletions test/bail/multi-webpack.config.js
@@ -0,0 +1,20 @@
module.exports = [
{
output: {
filename: './dist-first.js',
},
name: 'first',
entry: './src/first.js',
mode: 'development',
},
{
output: {
filename: './dist-second.js',
},
name: 'second',
entry: './src/second.js',
mode: 'production',
bail: true,
watch: true,
},
];
@@ -1,5 +1,5 @@
module.exports = {
entry: './main.js',
entry: './src/first.js',
mode: 'development',
bail: true,
watch: true,
Expand Down
1 change: 1 addition & 0 deletions test/bail/src/first.js
@@ -0,0 +1 @@
console.log('bail and watch warning test first');
1 change: 1 addition & 0 deletions test/bail/src/second.js
@@ -0,0 +1 @@
console.log('bail and watch warning test second');
8 changes: 0 additions & 8 deletions test/core-flags/bail-flag.test.js
Expand Up @@ -16,12 +16,4 @@ describe('--bail flag', () => {
expect(stderr).toBeFalsy();
expect(stdout).toContain('bail: false');
});

it('should log warning if --bail and --watch are used together', () => {
const { stderr, stdout } = run(__dirname, ['--bail', '--watch']);

expect(stderr).toContain(`You are using "bail" with "watch". "bail" will still exit webpack when the first error is found.`);
expect(stdout).toContain('bail: true');
expect(stdout).toContain('watch: true');
});
});

0 comments on commit 52b7029

Please sign in to comment.