From 2261410b6ebf44d7629b3e739def18d4f51c01ab Mon Sep 17 00:00:00 2001 From: Damian Pieczynski Date: Wed, 4 Nov 2020 13:33:56 +0100 Subject: [PATCH] refactor: wip --- .../webpack-cli/lib/plugins/WebpackCLIPlugin.js | 3 +-- packages/webpack-cli/lib/utils/name.js | 5 +++++ packages/webpack-cli/lib/webpack-cli.js | 17 +++++++++++++---- 3 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 packages/webpack-cli/lib/utils/name.js diff --git a/packages/webpack-cli/lib/plugins/WebpackCLIPlugin.js b/packages/webpack-cli/lib/plugins/WebpackCLIPlugin.js index 7b3228cd3aa..4aeeb63d91e 100644 --- a/packages/webpack-cli/lib/plugins/WebpackCLIPlugin.js +++ b/packages/webpack-cli/lib/plugins/WebpackCLIPlugin.js @@ -1,8 +1,7 @@ const { packageExists } = require('../utils/package-exists'); const webpack = packageExists('webpack') ? require('webpack') : undefined; const { getStatsOptions } = require('../utils/stats-options'); - -const PluginName = 'webpack-cli'; +const { PluginName } = require('../utils/name'); const appendProgressPlugin = (compiler, progress) => { const { ProgressPlugin } = compiler.webpack || webpack; diff --git a/packages/webpack-cli/lib/utils/name.js b/packages/webpack-cli/lib/utils/name.js new file mode 100644 index 00000000000..ce906bf7db0 --- /dev/null +++ b/packages/webpack-cli/lib/utils/name.js @@ -0,0 +1,5 @@ +const PluginName = 'webpack-cli'; + +module.exports = { + PluginName, +}; diff --git a/packages/webpack-cli/lib/webpack-cli.js b/packages/webpack-cli/lib/webpack-cli.js index de1b3a3f41b..4aff66e16d0 100644 --- a/packages/webpack-cli/lib/webpack-cli.js +++ b/packages/webpack-cli/lib/webpack-cli.js @@ -1,6 +1,6 @@ const { packageExists } = require('./utils/package-exists'); const webpack = packageExists('webpack') ? require('webpack') : undefined; -const logger = require('./utils/logger'); +const cliLogger = require('./utils/logger'); const webpackMerge = require('webpack-merge'); const { core, coreFlagMap } = require('./utils/cli-flags'); const argParser = require('./utils/arg-parser'); @@ -9,6 +9,7 @@ const assignFlagDefaults = require('./utils/flag-defaults'); const { writeFileSync } = require('fs'); const WebpackCLIPlugin = require('./plugins/WebpackCLIPlugin'); const { getStatsOptions } = require('./utils/stats-options'); +const { PluginName } = require('./utils/name'); // CLI arg resolvers const handleConfigResolution = require('./groups/ConfigGroup'); @@ -155,7 +156,13 @@ class WebpackCLI { .then(() => this._baseResolver(resolveStats, parsedArgs)); } - handleError(error) { + resolveLogger(compiler) { + return compiler ? compiler.getInfrastructureLogger(PluginName) : cliLogger; + } + + handleError(error, compiler) { + const logger = this.resolveLogger(compiler); + // https://github.com/webpack/webpack/blob/master/lib/index.js#L267 // https://github.com/webpack/webpack/blob/v4.44.2/lib/webpack.js#L90 const ValidationError = webpack.ValidationError || webpack.WebpackOptionsValidationError; @@ -175,7 +182,7 @@ class WebpackCLI { try { compiler = webpack(options, callback); } catch (error) { - this.handleError(error); + this.handleError(error, compiler); process.exit(2); } @@ -217,7 +224,7 @@ class WebpackCLI { const callback = (error, stats) => { if (error) { - this.handleError(error); + this.handleError(error, compiler); process.exit(2); } @@ -225,6 +232,8 @@ class WebpackCLI { process.exitCode = 1; } + const logger = this.resolveLogger(compiler); + if (isJsonOutput) { process.nextTick(() => { const statsOptions = compiler.compilers