From 09b2c70e7896d15c60552bc36bccb59d32a6050a Mon Sep 17 00:00:00 2001
From: Nitin Kumar <snitin315@gmail.com>
Date: Wed, 27 Jul 2022 14:55:55 +0530
Subject: [PATCH] refactor!: the minimum supported webpack version is v5.0.0
 (#3342)

BREAKING CHANGE: webpack-cli no longer supports webpack v4, the minimum supported version is webpack v5.0.0
---
 packages/webpack-cli/src/webpack-cli.ts       | 331 +++-------
 .../devtool/object/source-map-object.test.js  |   4 +-
 .../entry/flag-entry/entry-with-flag.test.js  |   7 +-
 test/build/target/flag-test/webpack.config.js |   1 -
 .../help.test.js.snap.devServer3.webpack5     | 608 +++++++++---------
 .../help.test.js.snap.devServer4.webpack5     | 444 +++++++------
 yarn.lock                                     |  15 +-
 7 files changed, 657 insertions(+), 753 deletions(-)

diff --git a/packages/webpack-cli/src/webpack-cli.ts b/packages/webpack-cli/src/webpack-cli.ts
index 7ca69f7334c..9e73001fabb 100644
--- a/packages/webpack-cli/src/webpack-cli.ts
+++ b/packages/webpack-cli/src/webpack-cli.ts
@@ -472,6 +472,11 @@ class WebpackCLI implements IWebpackCLI {
   makeOption(command: WebpackCLICommand, option: WebpackCLIBuiltInOption) {
     let mainOption: WebpackCLIMainOption;
     let negativeOption;
+    const flagsWithAlias = ["devtool", "output-path", "target", "watch"];
+
+    if (flagsWithAlias.includes(option.name)) {
+      option.alias = option.name[0];
+    }
 
     if (option.configs) {
       let needNegativeOption = false;
@@ -856,110 +861,6 @@ class WebpackCLI implements IWebpackCLI {
         alias: "j",
         description: "Prints result as JSON or store it in a file.",
       },
-
-      // For webpack@4
-      {
-        name: "entry",
-        configs: [
-          {
-            type: "string",
-          },
-        ],
-        multiple: true,
-        description: "The entry point(s) of your application e.g. ./src/main.js.",
-      },
-      {
-        name: "output-path",
-        alias: "o",
-        configs: [
-          {
-            type: "string",
-          },
-        ],
-        description: "Output location of the file generated by webpack e.g. ./dist/.",
-      },
-      {
-        name: "target",
-        alias: "t",
-        configs: [
-          {
-            type: "string",
-          },
-        ],
-        multiple: this.webpack.cli !== undefined,
-        description: "Sets the build target e.g. node.",
-      },
-      {
-        name: "devtool",
-        configs: [
-          {
-            type: "string",
-          },
-          {
-            type: "enum",
-            values: [false],
-          },
-        ],
-        negative: true,
-        alias: "d",
-        description: "Determine source maps to use.",
-        negatedDescription: "Do not generate source maps.",
-      },
-      {
-        name: "mode",
-        configs: [
-          {
-            type: "string",
-          },
-        ],
-        description: "Defines the mode to pass to webpack.",
-      },
-      {
-        name: "name",
-        configs: [
-          {
-            type: "string",
-          },
-        ],
-        description: "Name of the configuration. Used when loading multiple configurations.",
-      },
-      {
-        name: "stats",
-        configs: [
-          {
-            type: "string",
-          },
-          {
-            type: "boolean",
-          },
-        ],
-        negative: true,
-        description: "It instructs webpack on how to treat the stats e.g. verbose.",
-        negatedDescription: "Disable stats output.",
-      },
-      {
-        name: "watch",
-        configs: [
-          {
-            type: "boolean",
-          },
-        ],
-        negative: true,
-        alias: "w",
-        description: "Watch for files changes.",
-        negatedDescription: "Do not watch for file changes.",
-      },
-      {
-        name: "watch-options-stdin",
-        configs: [
-          {
-            type: "boolean",
-          },
-        ],
-        negative: true,
-        description: "Stop watching when stdin stream has ended.",
-        negatedDescription: "Do not stop watching when stdin stream has ended.",
-      },
       {
         name: "fail-on-warnings",
         configs: [
@@ -974,32 +875,31 @@ class WebpackCLI implements IWebpackCLI {
 
     // Extract all the flags being exported from core.
     // A list of cli flags generated by core can be found here https://github.com/webpack/webpack/blob/master/test/__snapshots__/Cli.test.js.snap
-    const coreFlags = this.webpack.cli
-      ? Object.entries(this.webpack.cli.getArguments()).map(([flag, meta]) => {
-          const inBuiltIn = builtInFlags.find((builtInFlag) => builtInFlag.name === flag);
-
-          if (inBuiltIn) {
-            return {
-              ...meta,
-              // @ts-expect-error this might be overwritten
-              name: flag,
-              group: "core",
-              ...inBuiltIn,
-              configs: meta.configs || [],
-            };
-          }
+    const coreArguments = Object.entries(this.webpack.cli.getArguments()).map(([flag, meta]) => {
+      const inBuiltIn = builtInFlags.find((builtInFlag) => builtInFlag.name === flag);
+
+      if (inBuiltIn) {
+        return {
+          ...meta,
+          // @ts-expect-error this might be overwritten
+          name: flag,
+          group: "core",
+          ...inBuiltIn,
+          configs: meta.configs || [],
+        };
+      }
 
-          return { ...meta, name: flag, group: "core" };
-        })
-      : [];
+      return { ...meta, name: flag, group: "core" };
+    });
 
     const options: WebpackCLIBuiltInOption[] = ([] as WebpackCLIBuiltInFlag[])
       .concat(
         builtInFlags.filter(
-          (builtInFlag) => !coreFlags.find((coreFlag) => builtInFlag.name === coreFlag.name),
+          (builtInFlag) =>
+            !coreArguments.find((coreArgument) => builtInFlag.name === coreArgument.name),
         ),
       )
-      .concat(coreFlags)
+      .concat(coreArguments)
       .map((option): WebpackCLIBuiltInOption => {
         (option as WebpackCLIBuiltInOption).helpLevel = minimumHelpFlags.includes(option.name)
           ? "minimum"
@@ -1680,6 +1580,8 @@ class WebpackCLI implements IWebpackCLI {
     // Default action
     this.program.usage("[options]");
     this.program.allowUnknownOption(true);
+
+    // Basic command for lazy loading other commands
     this.program.action(async (options, program: WebpackCLICommand) => {
       if (!isInternalActionCalled) {
         isInternalActionCalled = true;
@@ -2090,139 +1992,100 @@ class WebpackCLI implements IWebpackCLI {
       }
 
       // Apply options
-      if (this.webpack.cli) {
-        const args: Record<string, Argument> = this.getBuiltInOptions()
-          .filter((flag) => flag.group === "core")
-          .reduce((accumulator: Record<string, Argument>, flag) => {
-            accumulator[flag.name] = flag as unknown as Argument;
+      const args: Record<string, Argument> = this.getBuiltInOptions()
+        .filter((flag) => flag.group === "core")
+        .reduce((accumulator: Record<string, Argument>, flag) => {
+          accumulator[flag.name] = flag as unknown as Argument;
+          return accumulator;
+        }, {});
+
+      const values: ProcessedArguments = Object.keys(options).reduce(
+        (accumulator: ProcessedArguments, name) => {
+          if (name === "argv") {
             return accumulator;
-          }, {});
-
-        const values: ProcessedArguments = Object.keys(options).reduce(
-          (accumulator: ProcessedArguments, name) => {
-            if (name === "argv") {
-              return accumulator;
-            }
-
-            const kebabName = this.toKebabCase(name);
-
-            if (args[kebabName]) {
-              accumulator[kebabName] = options[name as keyof typeof options as string];
-            }
-
-            return accumulator;
-          },
-          {},
-        );
-
-        const problems: Problem[] | null = this.webpack.cli.processArguments(args, item, values);
-
-        if (problems) {
-          // eslint-disable-next-line @typescript-eslint/no-explicit-any
-          const groupBy = (xs: Record<string, any>[], key: string) => {
-            return xs.reduce((rv, x) => {
-              (rv[x[key]] = rv[x[key]] || []).push(x);
+          }
 
-              return rv;
-            }, {});
-          };
-          const problemsByPath = groupBy(problems, "path");
+          const kebabName = this.toKebabCase(name);
 
-          for (const path in problemsByPath) {
-            const problems = problemsByPath[path];
+          if (args[kebabName]) {
+            accumulator[kebabName] = options[name as keyof typeof options as string];
+          }
 
-            problems.forEach((problem: Problem) => {
-              this.logger.error(
-                `${this.capitalizeFirstLetter(problem.type.replace(/-/g, " "))}${
-                  problem.value ? ` '${problem.value}'` : ""
-                } for the '--${problem.argument}' option${
-                  problem.index ? ` by index '${problem.index}'` : ""
-                }`,
-              );
+          return accumulator;
+        },
+        {},
+      );
 
-              if (problem.expected) {
-                this.logger.error(`Expected: '${problem.expected}'`);
-              }
-            });
-          }
+      const problems: Problem[] | null = this.webpack.cli.processArguments(args, item, values);
 
-          process.exit(2);
-        }
+      if (problems) {
+        // eslint-disable-next-line @typescript-eslint/no-explicit-any
+        const groupBy = (xs: Record<string, any>[], key: string) => {
+          return xs.reduce((rv, x) => {
+            (rv[x[key]] = rv[x[key]] || []).push(x);
 
-        const isFileSystemCacheOptions = (
-          config: WebpackConfiguration,
-        ): config is FileSystemCacheOptions => {
-          return (
-            Boolean(config.cache) && (config as FileSystemCacheOptions).cache.type === "filesystem"
-          );
+            return rv;
+          }, {});
         };
+        const problemsByPath = groupBy(problems, "path");
 
-        // Setup default cache options
-        if (isFileSystemCacheOptions(item)) {
-          const configPath = config.path.get(item);
+        for (const path in problemsByPath) {
+          const problems = problemsByPath[path];
 
-          if (configPath) {
-            if (!item.cache.buildDependencies) {
-              item.cache.buildDependencies = {};
-            }
+          problems.forEach((problem: Problem) => {
+            this.logger.error(
+              `${this.capitalizeFirstLetter(problem.type.replace(/-/g, " "))}${
+                problem.value ? ` '${problem.value}'` : ""
+              } for the '--${problem.argument}' option${
+                problem.index ? ` by index '${problem.index}'` : ""
+              }`,
+            );
 
-            if (!item.cache.buildDependencies.defaultConfig) {
-              item.cache.buildDependencies.defaultConfig = [];
+            if (problem.expected) {
+              this.logger.error(`Expected: '${problem.expected}'`);
             }
-
-            if (Array.isArray(configPath)) {
-              configPath.forEach((oneOfConfigPath) => {
-                (
-                  item.cache.buildDependencies as NonNullable<
-                    FileSystemCacheOptions["cache"]["buildDependencies"]
-                  >
-                ).defaultConfig.push(oneOfConfigPath);
-              });
-            } else {
-              item.cache.buildDependencies.defaultConfig.push(configPath);
-            }
-          }
+          });
         }
-      }
 
-      // Setup legacy logic for webpack@4
-      // TODO respect `--entry-reset` in th next major release
-      // TODO drop in the next major release
-      if (options.entry) {
-        item.entry = options.entry;
-      }
-
-      if (options.outputPath) {
-        item.output = { ...item.output, ...{ path: path.resolve(options.outputPath) } };
-      }
-
-      if (options.target) {
-        item.target = options.target;
+        process.exit(2);
       }
 
-      if (typeof options.devtool !== "undefined") {
-        item.devtool = options.devtool;
-      }
+      const isFileSystemCacheOptions = (
+        config: WebpackConfiguration,
+      ): config is FileSystemCacheOptions => {
+        return (
+          Boolean(config.cache) && (config as FileSystemCacheOptions).cache.type === "filesystem"
+        );
+      };
 
-      if (options.name) {
-        item.name = options.name;
-      }
+      // Setup default cache options
+      if (isFileSystemCacheOptions(item)) {
+        const configPath = config.path.get(item);
 
-      if (typeof options.stats !== "undefined") {
-        item.stats = options.stats;
-      }
+        if (configPath) {
+          if (!item.cache.buildDependencies) {
+            item.cache.buildDependencies = {};
+          }
 
-      if (typeof options.watch !== "undefined") {
-        item.watch = options.watch;
-      }
+          if (!item.cache.buildDependencies.defaultConfig) {
+            item.cache.buildDependencies.defaultConfig = [];
+          }
 
-      if (typeof options.watchOptionsStdin !== "undefined") {
-        item.watchOptions = { ...item.watchOptions, ...{ stdin: options.watchOptionsStdin } };
+          if (Array.isArray(configPath)) {
+            configPath.forEach((oneOfConfigPath) => {
+              (
+                item.cache.buildDependencies as NonNullable<
+                  FileSystemCacheOptions["cache"]["buildDependencies"]
+                >
+              ).defaultConfig.push(oneOfConfigPath);
+            });
+          } else {
+            item.cache.buildDependencies.defaultConfig.push(configPath);
+          }
+        }
       }
 
-      if (options.mode) {
-        item.mode = options.mode;
-      }
+      // TODO respect `--entry-reset` in th next major release
 
       // Respect `process.env.NODE_ENV`
       if (
diff --git a/test/build/devtool/object/source-map-object.test.js b/test/build/devtool/object/source-map-object.test.js
index ffd2d90c508..e11af33aa16 100644
--- a/test/build/devtool/object/source-map-object.test.js
+++ b/test/build/devtool/object/source-map-object.test.js
@@ -34,7 +34,7 @@ describe("source-map object", () => {
   it("should override config with source-map", async () => {
     const { exitCode, stderr, stdout } = await run(
       __dirname,
-      ["-c", "./webpack.eval.config.js", "--devtool", "source-map", "-o", "./binary"],
+      ["-c", "./webpack.eval.config.js", "--devtool", "source-map", "--output-path", "./binary"],
       false,
     );
 
@@ -47,7 +47,7 @@ describe("source-map object", () => {
   it("should override config with devtool false", async () => {
     const { exitCode, stderr, stdout } = await run(
       __dirname,
-      ["-c", "./webpack.eval.config.js", "--no-devtool", "-o", "./binary"],
+      ["-c", "./webpack.eval.config.js", "--no-devtool", "--output-path", "./binary"],
       false,
     );
 
diff --git a/test/build/entry/flag-entry/entry-with-flag.test.js b/test/build/entry/flag-entry/entry-with-flag.test.js
index 01173107c25..16e8965a65f 100644
--- a/test/build/entry/flag-entry/entry-with-flag.test.js
+++ b/test/build/entry/flag-entry/entry-with-flag.test.js
@@ -6,12 +6,7 @@ const { resolve } = require("path");
 
 describe("entry flag", () => {
   it("should resolve the path to src/index.cjs", async () => {
-    const { exitCode, stderr, stdout } = await run(__dirname, [
-      "--entry",
-      "./src/index.cjs",
-      "-o",
-      "./dist/",
-    ]);
+    const { exitCode, stderr, stdout } = await run(__dirname, ["--entry", "./src/index.cjs"]);
 
     expect(exitCode).toBe(0);
     expect(stderr).toBeFalsy();
diff --git a/test/build/target/flag-test/webpack.config.js b/test/build/target/flag-test/webpack.config.js
index 10b0c480b9e..b1193101ba8 100644
--- a/test/build/target/flag-test/webpack.config.js
+++ b/test/build/target/flag-test/webpack.config.js
@@ -3,6 +3,5 @@ const WebpackCLITestPlugin = require("../../../utils/webpack-cli-test-plugin");
 module.exports = {
   entry: "./index.js",
   mode: "development",
-  target: "node",
   plugins: [new WebpackCLITestPlugin()],
 };
diff --git a/test/help/__snapshots__/help.test.js.snap.devServer3.webpack5 b/test/help/__snapshots__/help.test.js.snap.devServer3.webpack5
index c2c718b9b09..240ab309d91 100644
--- a/test/help/__snapshots__/help.test.js.snap.devServer3.webpack5
+++ b/test/help/__snapshots__/help.test.js.snap.devServer3.webpack5
@@ -102,20 +102,20 @@ Options:
   --node-env <value>                               Sets process.env.NODE_ENV to the specified value.
   --progress [value]                               Print compilation progress during build.
   -j, --json [value]                               Prints result as JSON or store it in a file.
-  -d, --devtool <value>                            Determine source maps to use.
-  --no-devtool                                     Do not generate source maps.
-  --entry <value...>                               The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>                                   Defines the mode to pass to webpack.
+  -d, --devtool <value>                            A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool                                     Negative 'devtool' option.
+  --entry <value...>                               A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>                                   Enable production optimizations or development hints.
   --name <value>                                   Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>                        Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]                                  It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                                       Disable stats output.
-  -t, --target <value...>                          Sets the build target e.g. node.
+  -o, --output-path <value>                        The output directory as **absolute path** (required).
+  --stats [value]                                  Stats options object or preset name.
+  --no-stats                                       Negative 'stats' option.
+  -t, --target <value...>                          Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                                      Negative 'target' option.
-  -w, --watch                                      Watch for files changes.
-  --no-watch                                       Do not watch for file changes.
+  -w, --watch                                      Enter watch mode, which rebuilds on file change.
+  --no-watch                                       Negative 'watch' option.
   --watch-options-stdin                            Stop watching when stdin stream has ended.
-  --no-watch-options-stdin                         Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin                         Negative 'watch-options-stdin' option.
 
 Global options:
   --color                                          Enable colors on console.
@@ -159,20 +159,20 @@ Options:
   --node-env <value>                               Sets process.env.NODE_ENV to the specified value.
   --progress [value]                               Print compilation progress during build.
   -j, --json [value]                               Prints result as JSON or store it in a file.
-  -d, --devtool <value>                            Determine source maps to use.
-  --no-devtool                                     Do not generate source maps.
-  --entry <value...>                               The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>                                   Defines the mode to pass to webpack.
+  -d, --devtool <value>                            A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool                                     Negative 'devtool' option.
+  --entry <value...>                               A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>                                   Enable production optimizations or development hints.
   --name <value>                                   Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>                        Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]                                  It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                                       Disable stats output.
-  -t, --target <value...>                          Sets the build target e.g. node.
+  -o, --output-path <value>                        The output directory as **absolute path** (required).
+  --stats [value]                                  Stats options object or preset name.
+  --no-stats                                       Negative 'stats' option.
+  -t, --target <value...>                          Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                                      Negative 'target' option.
-  -w, --watch                                      Watch for files changes.
-  --no-watch                                       Do not watch for file changes.
+  -w, --watch                                      Enter watch mode, which rebuilds on file change.
+  --no-watch                                       Negative 'watch' option.
   --watch-options-stdin                            Stop watching when stdin stream has ended.
-  --no-watch-options-stdin                         Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin                         Negative 'watch-options-stdin' option.
 
 Global options:
   --color                                          Enable colors on console.
@@ -216,20 +216,20 @@ Options:
   --node-env <value>                               Sets process.env.NODE_ENV to the specified value.
   --progress [value]                               Print compilation progress during build.
   -j, --json [value]                               Prints result as JSON or store it in a file.
-  -d, --devtool <value>                            Determine source maps to use.
-  --no-devtool                                     Do not generate source maps.
-  --entry <value...>                               The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>                                   Defines the mode to pass to webpack.
+  -d, --devtool <value>                            A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool                                     Negative 'devtool' option.
+  --entry <value...>                               A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>                                   Enable production optimizations or development hints.
   --name <value>                                   Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>                        Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]                                  It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                                       Disable stats output.
-  -t, --target <value...>                          Sets the build target e.g. node.
+  -o, --output-path <value>                        The output directory as **absolute path** (required).
+  --stats [value]                                  Stats options object or preset name.
+  --no-stats                                       Negative 'stats' option.
+  -t, --target <value...>                          Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                                      Negative 'target' option.
-  -w, --watch                                      Watch for files changes.
-  --no-watch                                       Do not watch for file changes.
+  -w, --watch                                      Enter watch mode, which rebuilds on file change.
+  --no-watch                                       Negative 'watch' option.
   --watch-options-stdin                            Stop watching when stdin stream has ended.
-  --no-watch-options-stdin                         Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin                         Negative 'watch-options-stdin' option.
 
 Global options:
   --color                                          Enable colors on console.
@@ -272,20 +272,20 @@ Options:
   --node-env <value>         Sets process.env.NODE_ENV to the specified value.
   --progress [value]         Print compilation progress during build.
   -j, --json [value]         Prints result as JSON or store it in a file.
-  -d, --devtool <value>      Determine source maps to use.
-  --no-devtool               Do not generate source maps.
-  --entry <value...>         The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>             Defines the mode to pass to webpack.
+  -d, --devtool <value>      A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool               Negative 'devtool' option.
+  --entry <value...>         A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>             Enable production optimizations or development hints.
   --name <value>             Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>  Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]            It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                 Disable stats output.
-  -t, --target <value...>    Sets the build target e.g. node.
+  -o, --output-path <value>  The output directory as **absolute path** (required).
+  --stats [value]            Stats options object or preset name.
+  --no-stats                 Negative 'stats' option.
+  -t, --target <value...>    Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                Negative 'target' option.
-  -w, --watch                Watch for files changes.
-  --no-watch                 Do not watch for file changes.
+  -w, --watch                Enter watch mode, which rebuilds on file change.
+  --no-watch                 Negative 'watch' option.
   --watch-options-stdin      Stop watching when stdin stream has ended.
-  --no-watch-options-stdin   Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin   Negative 'watch-options-stdin' option.
 
 Global options:
   --color                    Enable colors on console.
@@ -316,20 +316,20 @@ Options:
   --node-env <value>         Sets process.env.NODE_ENV to the specified value.
   --progress [value]         Print compilation progress during build.
   -j, --json [value]         Prints result as JSON or store it in a file.
-  -d, --devtool <value>      Determine source maps to use.
-  --no-devtool               Do not generate source maps.
-  --entry <value...>         The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>             Defines the mode to pass to webpack.
+  -d, --devtool <value>      A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool               Negative 'devtool' option.
+  --entry <value...>         A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>             Enable production optimizations or development hints.
   --name <value>             Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>  Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]            It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                 Disable stats output.
-  -t, --target <value...>    Sets the build target e.g. node.
+  -o, --output-path <value>  The output directory as **absolute path** (required).
+  --stats [value]            Stats options object or preset name.
+  --no-stats                 Negative 'stats' option.
+  -t, --target <value...>    Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                Negative 'target' option.
-  -w, --watch                Watch for files changes.
-  --no-watch                 Do not watch for file changes.
+  -w, --watch                Enter watch mode, which rebuilds on file change.
+  --no-watch                 Negative 'watch' option.
   --watch-options-stdin      Stop watching when stdin stream has ended.
-  --no-watch-options-stdin   Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin   Negative 'watch-options-stdin' option.
 
 Global options:
   --color                    Enable colors on console.
@@ -363,24 +363,28 @@ Options:
   --node-env <value>         Sets process.env.NODE_ENV to the specified value.
   --progress [value]         Print compilation progress during build.
   -j, --json [value]         Prints result as JSON or store it in a file.
-  -d, --devtool <value>      Determine source maps to use.
-  --no-devtool               Do not generate source maps.
-  --entry <value...>         The entry point(s) of your application e.g.
-                             ./src/main.js.
-  --mode <value>             Defines the mode to pass to webpack.
+  -d, --devtool <value>      A developer tool to enhance debugging (false |
+                             eval |
+                             [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool               Negative 'devtool' option.
+  --entry <value...>         A module that is loaded upon startup. Only the
+                             last one is exported.
+  --mode <value>             Enable production optimizations or development
+                             hints.
   --name <value>             Name of the configuration. Used when loading
                              multiple configurations.
-  -o, --output-path <value>  Output location of the file generated by webpack
-                             e.g. ./dist/.
-  --stats [value]            It instructs webpack on how to treat the stats
-                             e.g. verbose.
-  --no-stats                 Disable stats output.
-  -t, --target <value...>    Sets the build target e.g. node.
+  -o, --output-path <value>  The output directory as **absolute path**
+                             (required).
+  --stats [value]            Stats options object or preset name.
+  --no-stats                 Negative 'stats' option.
+  -t, --target <value...>    Environment to build for. Environment to build
+                             for. An array of environments to build for all of
+                             them when possible.
   --no-target                Negative 'target' option.
-  -w, --watch                Watch for files changes.
-  --no-watch                 Do not watch for file changes.
+  -w, --watch                Enter watch mode, which rebuilds on file change.
+  --no-watch                 Negative 'watch' option.
   --watch-options-stdin      Stop watching when stdin stream has ended.
-  --no-watch-options-stdin   Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin   Negative 'watch-options-stdin' option.
 
 Global options:
   --color                    Enable colors on console.
@@ -416,24 +420,28 @@ Options:
   --node-env <value>         Sets process.env.NODE_ENV to the specified value.
   --progress [value]         Print compilation progress during build.
   -j, --json [value]         Prints result as JSON or store it in a file.
-  -d, --devtool <value>      Determine source maps to use.
-  --no-devtool               Do not generate source maps.
-  --entry <value...>         The entry point(s) of your application e.g.
-                             ./src/main.js.
-  --mode <value>             Defines the mode to pass to webpack.
+  -d, --devtool <value>      A developer tool to enhance debugging (false |
+                             eval |
+                             [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool               Negative 'devtool' option.
+  --entry <value...>         A module that is loaded upon startup. Only the
+                             last one is exported.
+  --mode <value>             Enable production optimizations or development
+                             hints.
   --name <value>             Name of the configuration. Used when loading
                              multiple configurations.
-  -o, --output-path <value>  Output location of the file generated by webpack
-                             e.g. ./dist/.
-  --stats [value]            It instructs webpack on how to treat the stats
-                             e.g. verbose.
-  --no-stats                 Disable stats output.
-  -t, --target <value...>    Sets the build target e.g. node.
+  -o, --output-path <value>  The output directory as **absolute path**
+                             (required).
+  --stats [value]            Stats options object or preset name.
+  --no-stats                 Negative 'stats' option.
+  -t, --target <value...>    Environment to build for. Environment to build
+                             for. An array of environments to build for all of
+                             them when possible.
   --no-target                Negative 'target' option.
-  -w, --watch                Watch for files changes.
-  --no-watch                 Do not watch for file changes.
+  -w, --watch                Enter watch mode, which rebuilds on file change.
+  --no-watch                 Negative 'watch' option.
   --watch-options-stdin      Stop watching when stdin stream has ended.
-  --no-watch-options-stdin   Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin   Negative 'watch-options-stdin' option.
 
 Global options:
   --color                    Enable colors on console.
@@ -466,20 +474,20 @@ Options:
   --node-env <value>         Sets process.env.NODE_ENV to the specified value.
   --progress [value]         Print compilation progress during build.
   -j, --json [value]         Prints result as JSON or store it in a file.
-  -d, --devtool <value>      Determine source maps to use.
-  --no-devtool               Do not generate source maps.
-  --entry <value...>         The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>             Defines the mode to pass to webpack.
+  -d, --devtool <value>      A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool               Negative 'devtool' option.
+  --entry <value...>         A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>             Enable production optimizations or development hints.
   --name <value>             Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>  Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]            It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                 Disable stats output.
-  -t, --target <value...>    Sets the build target e.g. node.
+  -o, --output-path <value>  The output directory as **absolute path** (required).
+  --stats [value]            Stats options object or preset name.
+  --no-stats                 Negative 'stats' option.
+  -t, --target <value...>    Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                Negative 'target' option.
-  -w, --watch                Watch for files changes.
-  --no-watch                 Do not watch for file changes.
+  -w, --watch                Enter watch mode, which rebuilds on file change.
+  --no-watch                 Negative 'watch' option.
   --watch-options-stdin      Stop watching when stdin stream has ended.
-  --no-watch-options-stdin   Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin   Negative 'watch-options-stdin' option.
 
 Global options:
   --color                    Enable colors on console.
@@ -510,20 +518,20 @@ Options:
   --node-env <value>         Sets process.env.NODE_ENV to the specified value.
   --progress [value]         Print compilation progress during build.
   -j, --json [value]         Prints result as JSON or store it in a file.
-  -d, --devtool <value>      Determine source maps to use.
-  --no-devtool               Do not generate source maps.
-  --entry <value...>         The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>             Defines the mode to pass to webpack.
+  -d, --devtool <value>      A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool               Negative 'devtool' option.
+  --entry <value...>         A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>             Enable production optimizations or development hints.
   --name <value>             Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>  Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]            It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                 Disable stats output.
-  -t, --target <value...>    Sets the build target e.g. node.
+  -o, --output-path <value>  The output directory as **absolute path** (required).
+  --stats [value]            Stats options object or preset name.
+  --no-stats                 Negative 'stats' option.
+  -t, --target <value...>    Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                Negative 'target' option.
-  -w, --watch                Watch for files changes.
-  --no-watch                 Do not watch for file changes.
+  -w, --watch                Enter watch mode, which rebuilds on file change.
+  --no-watch                 Negative 'watch' option.
   --watch-options-stdin      Stop watching when stdin stream has ended.
-  --no-watch-options-stdin   Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin   Negative 'watch-options-stdin' option.
 
 Global options:
   --color                    Enable colors on console.
@@ -1432,18 +1440,18 @@ Options:
   --node-env <value>          Sets process.env.NODE_ENV to the specified value.
   --progress [value]          Print compilation progress during build.
   -j, --json [value]          Prints result as JSON or store it in a file.
-  -d, --devtool <value>       Determine source maps to use.
-  --no-devtool                Do not generate source maps.
-  --entry <value...>          The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>              Defines the mode to pass to webpack.
+  -d, --devtool <value>       A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool                Negative 'devtool' option.
+  --entry <value...>          A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>              Enable production optimizations or development hints.
   --name <value>              Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>   Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]             It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                  Disable stats output.
-  -t, --target <value...>     Sets the build target e.g. node.
+  -o, --output-path <value>   The output directory as **absolute path** (required).
+  --stats [value]             Stats options object or preset name.
+  --no-stats                  Negative 'stats' option.
+  -t, --target <value...>     Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                 Negative 'target' option.
   --watch-options-stdin       Stop watching when stdin stream has ended.
-  --no-watch-options-stdin    Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin    Negative 'watch-options-stdin' option.
   --bonjour                   Broadcasts the server via ZeroConf networking on start
   --lazy                      Lazy
   --liveReload                Enables/Disables live reloading on changing files
@@ -1504,18 +1512,18 @@ Options:
   --node-env <value>          Sets process.env.NODE_ENV to the specified value.
   --progress [value]          Print compilation progress during build.
   -j, --json [value]          Prints result as JSON or store it in a file.
-  -d, --devtool <value>       Determine source maps to use.
-  --no-devtool                Do not generate source maps.
-  --entry <value...>          The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>              Defines the mode to pass to webpack.
+  -d, --devtool <value>       A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool                Negative 'devtool' option.
+  --entry <value...>          A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>              Enable production optimizations or development hints.
   --name <value>              Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>   Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]             It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                  Disable stats output.
-  -t, --target <value...>     Sets the build target e.g. node.
+  -o, --output-path <value>   The output directory as **absolute path** (required).
+  --stats [value]             Stats options object or preset name.
+  --no-stats                  Negative 'stats' option.
+  -t, --target <value...>     Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                 Negative 'target' option.
   --watch-options-stdin       Stop watching when stdin stream has ended.
-  --no-watch-options-stdin    Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin    Negative 'watch-options-stdin' option.
   --bonjour                   Broadcasts the server via ZeroConf networking on start
   --lazy                      Lazy
   --liveReload                Enables/Disables live reloading on changing files
@@ -1579,22 +1587,26 @@ Options:
   --node-env <value>          Sets process.env.NODE_ENV to the specified value.
   --progress [value]          Print compilation progress during build.
   -j, --json [value]          Prints result as JSON or store it in a file.
-  -d, --devtool <value>       Determine source maps to use.
-  --no-devtool                Do not generate source maps.
-  --entry <value...>          The entry point(s) of your application e.g.
-                              ./src/main.js.
-  --mode <value>              Defines the mode to pass to webpack.
+  -d, --devtool <value>       A developer tool to enhance debugging (false |
+                              eval |
+                              [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool                Negative 'devtool' option.
+  --entry <value...>          A module that is loaded upon startup. Only the
+                              last one is exported.
+  --mode <value>              Enable production optimizations or development
+                              hints.
   --name <value>              Name of the configuration. Used when loading
                               multiple configurations.
-  -o, --output-path <value>   Output location of the file generated by webpack
-                              e.g. ./dist/.
-  --stats [value]             It instructs webpack on how to treat the stats
-                              e.g. verbose.
-  --no-stats                  Disable stats output.
-  -t, --target <value...>     Sets the build target e.g. node.
+  -o, --output-path <value>   The output directory as **absolute path**
+                              (required).
+  --stats [value]             Stats options object or preset name.
+  --no-stats                  Negative 'stats' option.
+  -t, --target <value...>     Environment to build for. Environment to build
+                              for. An array of environments to build for all of
+                              them when possible.
   --no-target                 Negative 'target' option.
   --watch-options-stdin       Stop watching when stdin stream has ended.
-  --no-watch-options-stdin    Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin    Negative 'watch-options-stdin' option.
   --bonjour                   Broadcasts the server via ZeroConf networking on
                               start
   --lazy                      Lazy
@@ -1666,22 +1678,26 @@ Options:
   --node-env <value>          Sets process.env.NODE_ENV to the specified value.
   --progress [value]          Print compilation progress during build.
   -j, --json [value]          Prints result as JSON or store it in a file.
-  -d, --devtool <value>       Determine source maps to use.
-  --no-devtool                Do not generate source maps.
-  --entry <value...>          The entry point(s) of your application e.g.
-                              ./src/main.js.
-  --mode <value>              Defines the mode to pass to webpack.
+  -d, --devtool <value>       A developer tool to enhance debugging (false |
+                              eval |
+                              [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool                Negative 'devtool' option.
+  --entry <value...>          A module that is loaded upon startup. Only the
+                              last one is exported.
+  --mode <value>              Enable production optimizations or development
+                              hints.
   --name <value>              Name of the configuration. Used when loading
                               multiple configurations.
-  -o, --output-path <value>   Output location of the file generated by webpack
-                              e.g. ./dist/.
-  --stats [value]             It instructs webpack on how to treat the stats
-                              e.g. verbose.
-  --no-stats                  Disable stats output.
-  -t, --target <value...>     Sets the build target e.g. node.
+  -o, --output-path <value>   The output directory as **absolute path**
+                              (required).
+  --stats [value]             Stats options object or preset name.
+  --no-stats                  Negative 'stats' option.
+  -t, --target <value...>     Environment to build for. Environment to build
+                              for. An array of environments to build for all of
+                              them when possible.
   --no-target                 Negative 'target' option.
   --watch-options-stdin       Stop watching when stdin stream has ended.
-  --no-watch-options-stdin    Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin    Negative 'watch-options-stdin' option.
   --bonjour                   Broadcasts the server via ZeroConf networking on
                               start
   --lazy                      Lazy
@@ -1750,18 +1766,18 @@ Options:
   --node-env <value>          Sets process.env.NODE_ENV to the specified value.
   --progress [value]          Print compilation progress during build.
   -j, --json [value]          Prints result as JSON or store it in a file.
-  -d, --devtool <value>       Determine source maps to use.
-  --no-devtool                Do not generate source maps.
-  --entry <value...>          The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>              Defines the mode to pass to webpack.
+  -d, --devtool <value>       A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool                Negative 'devtool' option.
+  --entry <value...>          A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>              Enable production optimizations or development hints.
   --name <value>              Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>   Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]             It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                  Disable stats output.
-  -t, --target <value...>     Sets the build target e.g. node.
+  -o, --output-path <value>   The output directory as **absolute path** (required).
+  --stats [value]             Stats options object or preset name.
+  --no-stats                  Negative 'stats' option.
+  -t, --target <value...>     Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                 Negative 'target' option.
   --watch-options-stdin       Stop watching when stdin stream has ended.
-  --no-watch-options-stdin    Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin    Negative 'watch-options-stdin' option.
   --bonjour                   Broadcasts the server via ZeroConf networking on start
   --lazy                      Lazy
   --liveReload                Enables/Disables live reloading on changing files
@@ -1822,18 +1838,18 @@ Options:
   --node-env <value>          Sets process.env.NODE_ENV to the specified value.
   --progress [value]          Print compilation progress during build.
   -j, --json [value]          Prints result as JSON or store it in a file.
-  -d, --devtool <value>       Determine source maps to use.
-  --no-devtool                Do not generate source maps.
-  --entry <value...>          The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>              Defines the mode to pass to webpack.
+  -d, --devtool <value>       A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool                Negative 'devtool' option.
+  --entry <value...>          A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>              Enable production optimizations or development hints.
   --name <value>              Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>   Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]             It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                  Disable stats output.
-  -t, --target <value...>     Sets the build target e.g. node.
+  -o, --output-path <value>   The output directory as **absolute path** (required).
+  --stats [value]             Stats options object or preset name.
+  --no-stats                  Negative 'stats' option.
+  -t, --target <value...>     Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                 Negative 'target' option.
   --watch-options-stdin       Stop watching when stdin stream has ended.
-  --no-watch-options-stdin    Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin    Negative 'watch-options-stdin' option.
   --bonjour                   Broadcasts the server via ZeroConf networking on start
   --lazy                      Lazy
   --liveReload                Enables/Disables live reloading on changing files
@@ -1894,18 +1910,18 @@ Options:
   --node-env <value>          Sets process.env.NODE_ENV to the specified value.
   --progress [value]          Print compilation progress during build.
   -j, --json [value]          Prints result as JSON or store it in a file.
-  -d, --devtool <value>       Determine source maps to use.
-  --no-devtool                Do not generate source maps.
-  --entry <value...>          The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>              Defines the mode to pass to webpack.
+  -d, --devtool <value>       A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool                Negative 'devtool' option.
+  --entry <value...>          A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>              Enable production optimizations or development hints.
   --name <value>              Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>   Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]             It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                  Disable stats output.
-  -t, --target <value...>     Sets the build target e.g. node.
+  -o, --output-path <value>   The output directory as **absolute path** (required).
+  --stats [value]             Stats options object or preset name.
+  --no-stats                  Negative 'stats' option.
+  -t, --target <value...>     Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                 Negative 'target' option.
   --watch-options-stdin       Stop watching when stdin stream has ended.
-  --no-watch-options-stdin    Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin    Negative 'watch-options-stdin' option.
   --bonjour                   Broadcasts the server via ZeroConf networking on start
   --lazy                      Lazy
   --liveReload                Enables/Disables live reloading on changing files
@@ -1966,18 +1982,18 @@ Options:
   --node-env <value>          Sets process.env.NODE_ENV to the specified value.
   --progress [value]          Print compilation progress during build.
   -j, --json [value]          Prints result as JSON or store it in a file.
-  -d, --devtool <value>       Determine source maps to use.
-  --no-devtool                Do not generate source maps.
-  --entry <value...>          The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>              Defines the mode to pass to webpack.
+  -d, --devtool <value>       A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool                Negative 'devtool' option.
+  --entry <value...>          A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>              Enable production optimizations or development hints.
   --name <value>              Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>   Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]             It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                  Disable stats output.
-  -t, --target <value...>     Sets the build target e.g. node.
+  -o, --output-path <value>   The output directory as **absolute path** (required).
+  --stats [value]             Stats options object or preset name.
+  --no-stats                  Negative 'stats' option.
+  -t, --target <value...>     Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                 Negative 'target' option.
   --watch-options-stdin       Stop watching when stdin stream has ended.
-  --no-watch-options-stdin    Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin    Negative 'watch-options-stdin' option.
   --bonjour                   Broadcasts the server via ZeroConf networking on start
   --lazy                      Lazy
   --liveReload                Enables/Disables live reloading on changing files
@@ -2078,18 +2094,18 @@ Options:
   --node-env <value>         Sets process.env.NODE_ENV to the specified value.
   --progress [value]         Print compilation progress during build.
   -j, --json [value]         Prints result as JSON or store it in a file.
-  -d, --devtool <value>      Determine source maps to use.
-  --no-devtool               Do not generate source maps.
-  --entry <value...>         The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>             Defines the mode to pass to webpack.
+  -d, --devtool <value>      A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool               Negative 'devtool' option.
+  --entry <value...>         A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>             Enable production optimizations or development hints.
   --name <value>             Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>  Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]            It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                 Disable stats output.
-  -t, --target <value...>    Sets the build target e.g. node.
+  -o, --output-path <value>  The output directory as **absolute path** (required).
+  --stats [value]            Stats options object or preset name.
+  --no-stats                 Negative 'stats' option.
+  -t, --target <value...>    Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                Negative 'target' option.
   --watch-options-stdin      Stop watching when stdin stream has ended.
-  --no-watch-options-stdin   Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin   Negative 'watch-options-stdin' option.
 
 Global options:
   --color                    Enable colors on console.
@@ -2120,18 +2136,18 @@ Options:
   --node-env <value>         Sets process.env.NODE_ENV to the specified value.
   --progress [value]         Print compilation progress during build.
   -j, --json [value]         Prints result as JSON or store it in a file.
-  -d, --devtool <value>      Determine source maps to use.
-  --no-devtool               Do not generate source maps.
-  --entry <value...>         The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>             Defines the mode to pass to webpack.
+  -d, --devtool <value>      A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool               Negative 'devtool' option.
+  --entry <value...>         A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>             Enable production optimizations or development hints.
   --name <value>             Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>  Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]            It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                 Disable stats output.
-  -t, --target <value...>    Sets the build target e.g. node.
+  -o, --output-path <value>  The output directory as **absolute path** (required).
+  --stats [value]            Stats options object or preset name.
+  --no-stats                 Negative 'stats' option.
+  -t, --target <value...>    Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                Negative 'target' option.
   --watch-options-stdin      Stop watching when stdin stream has ended.
-  --no-watch-options-stdin   Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin   Negative 'watch-options-stdin' option.
 
 Global options:
   --color                    Enable colors on console.
@@ -2165,22 +2181,26 @@ Options:
   --node-env <value>         Sets process.env.NODE_ENV to the specified value.
   --progress [value]         Print compilation progress during build.
   -j, --json [value]         Prints result as JSON or store it in a file.
-  -d, --devtool <value>      Determine source maps to use.
-  --no-devtool               Do not generate source maps.
-  --entry <value...>         The entry point(s) of your application e.g.
-                             ./src/main.js.
-  --mode <value>             Defines the mode to pass to webpack.
+  -d, --devtool <value>      A developer tool to enhance debugging (false |
+                             eval |
+                             [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool               Negative 'devtool' option.
+  --entry <value...>         A module that is loaded upon startup. Only the
+                             last one is exported.
+  --mode <value>             Enable production optimizations or development
+                             hints.
   --name <value>             Name of the configuration. Used when loading
                              multiple configurations.
-  -o, --output-path <value>  Output location of the file generated by webpack
-                             e.g. ./dist/.
-  --stats [value]            It instructs webpack on how to treat the stats
-                             e.g. verbose.
-  --no-stats                 Disable stats output.
-  -t, --target <value...>    Sets the build target e.g. node.
+  -o, --output-path <value>  The output directory as **absolute path**
+                             (required).
+  --stats [value]            Stats options object or preset name.
+  --no-stats                 Negative 'stats' option.
+  -t, --target <value...>    Environment to build for. Environment to build
+                             for. An array of environments to build for all of
+                             them when possible.
   --no-target                Negative 'target' option.
   --watch-options-stdin      Stop watching when stdin stream has ended.
-  --no-watch-options-stdin   Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin   Negative 'watch-options-stdin' option.
 
 Global options:
   --color                    Enable colors on console.
@@ -2216,22 +2236,26 @@ Options:
   --node-env <value>         Sets process.env.NODE_ENV to the specified value.
   --progress [value]         Print compilation progress during build.
   -j, --json [value]         Prints result as JSON or store it in a file.
-  -d, --devtool <value>      Determine source maps to use.
-  --no-devtool               Do not generate source maps.
-  --entry <value...>         The entry point(s) of your application e.g.
-                             ./src/main.js.
-  --mode <value>             Defines the mode to pass to webpack.
+  -d, --devtool <value>      A developer tool to enhance debugging (false |
+                             eval |
+                             [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool               Negative 'devtool' option.
+  --entry <value...>         A module that is loaded upon startup. Only the
+                             last one is exported.
+  --mode <value>             Enable production optimizations or development
+                             hints.
   --name <value>             Name of the configuration. Used when loading
                              multiple configurations.
-  -o, --output-path <value>  Output location of the file generated by webpack
-                             e.g. ./dist/.
-  --stats [value]            It instructs webpack on how to treat the stats
-                             e.g. verbose.
-  --no-stats                 Disable stats output.
-  -t, --target <value...>    Sets the build target e.g. node.
+  -o, --output-path <value>  The output directory as **absolute path**
+                             (required).
+  --stats [value]            Stats options object or preset name.
+  --no-stats                 Negative 'stats' option.
+  -t, --target <value...>    Environment to build for. Environment to build
+                             for. An array of environments to build for all of
+                             them when possible.
   --no-target                Negative 'target' option.
   --watch-options-stdin      Stop watching when stdin stream has ended.
-  --no-watch-options-stdin   Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin   Negative 'watch-options-stdin' option.
 
 Global options:
   --color                    Enable colors on console.
@@ -2264,18 +2288,18 @@ Options:
   --node-env <value>         Sets process.env.NODE_ENV to the specified value.
   --progress [value]         Print compilation progress during build.
   -j, --json [value]         Prints result as JSON or store it in a file.
-  -d, --devtool <value>      Determine source maps to use.
-  --no-devtool               Do not generate source maps.
-  --entry <value...>         The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>             Defines the mode to pass to webpack.
+  -d, --devtool <value>      A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool               Negative 'devtool' option.
+  --entry <value...>         A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>             Enable production optimizations or development hints.
   --name <value>             Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>  Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]            It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                 Disable stats output.
-  -t, --target <value...>    Sets the build target e.g. node.
+  -o, --output-path <value>  The output directory as **absolute path** (required).
+  --stats [value]            Stats options object or preset name.
+  --no-stats                 Negative 'stats' option.
+  -t, --target <value...>    Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                Negative 'target' option.
   --watch-options-stdin      Stop watching when stdin stream has ended.
-  --no-watch-options-stdin   Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin   Negative 'watch-options-stdin' option.
 
 Global options:
   --color                    Enable colors on console.
@@ -2306,18 +2330,18 @@ Options:
   --node-env <value>         Sets process.env.NODE_ENV to the specified value.
   --progress [value]         Print compilation progress during build.
   -j, --json [value]         Prints result as JSON or store it in a file.
-  -d, --devtool <value>      Determine source maps to use.
-  --no-devtool               Do not generate source maps.
-  --entry <value...>         The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>             Defines the mode to pass to webpack.
+  -d, --devtool <value>      A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool               Negative 'devtool' option.
+  --entry <value...>         A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>             Enable production optimizations or development hints.
   --name <value>             Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>  Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]            It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                 Disable stats output.
-  -t, --target <value...>    Sets the build target e.g. node.
+  -o, --output-path <value>  The output directory as **absolute path** (required).
+  --stats [value]            Stats options object or preset name.
+  --no-stats                 Negative 'stats' option.
+  -t, --target <value...>    Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                Negative 'target' option.
   --watch-options-stdin      Stop watching when stdin stream has ended.
-  --no-watch-options-stdin   Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin   Negative 'watch-options-stdin' option.
 
 Global options:
   --color                    Enable colors on console.
@@ -2349,20 +2373,20 @@ Options:
   --node-env <value>                               Sets process.env.NODE_ENV to the specified value.
   --progress [value]                               Print compilation progress during build.
   -j, --json [value]                               Prints result as JSON or store it in a file.
-  -d, --devtool <value>                            Determine source maps to use.
-  --no-devtool                                     Do not generate source maps.
-  --entry <value...>                               The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>                                   Defines the mode to pass to webpack.
+  -d, --devtool <value>                            A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool                                     Negative 'devtool' option.
+  --entry <value...>                               A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>                                   Enable production optimizations or development hints.
   --name <value>                                   Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>                        Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]                                  It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                                       Disable stats output.
-  -t, --target <value...>                          Sets the build target e.g. node.
+  -o, --output-path <value>                        The output directory as **absolute path** (required).
+  --stats [value]                                  Stats options object or preset name.
+  --no-stats                                       Negative 'stats' option.
+  -t, --target <value...>                          Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                                      Negative 'target' option.
-  -w, --watch                                      Watch for files changes.
-  --no-watch                                       Do not watch for file changes.
+  -w, --watch                                      Enter watch mode, which rebuilds on file change.
+  --no-watch                                       Negative 'watch' option.
   --watch-options-stdin                            Stop watching when stdin stream has ended.
-  --no-watch-options-stdin                         Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin                         Negative 'watch-options-stdin' option.
 
 Global options:
   --color                                          Enable colors on console.
@@ -2406,20 +2430,20 @@ Options:
   --node-env <value>                               Sets process.env.NODE_ENV to the specified value.
   --progress [value]                               Print compilation progress during build.
   -j, --json [value]                               Prints result as JSON or store it in a file.
-  -d, --devtool <value>                            Determine source maps to use.
-  --no-devtool                                     Do not generate source maps.
-  --entry <value...>                               The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>                                   Defines the mode to pass to webpack.
+  -d, --devtool <value>                            A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool                                     Negative 'devtool' option.
+  --entry <value...>                               A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>                                   Enable production optimizations or development hints.
   --name <value>                                   Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>                        Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]                                  It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                                       Disable stats output.
-  -t, --target <value...>                          Sets the build target e.g. node.
+  -o, --output-path <value>                        The output directory as **absolute path** (required).
+  --stats [value]                                  Stats options object or preset name.
+  --no-stats                                       Negative 'stats' option.
+  -t, --target <value...>                          Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                                      Negative 'target' option.
-  -w, --watch                                      Watch for files changes.
-  --no-watch                                       Do not watch for file changes.
+  -w, --watch                                      Enter watch mode, which rebuilds on file change.
+  --no-watch                                       Negative 'watch' option.
   --watch-options-stdin                            Stop watching when stdin stream has ended.
-  --no-watch-options-stdin                         Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin                         Negative 'watch-options-stdin' option.
 
 Global options:
   --color                                          Enable colors on console.
@@ -2477,7 +2501,7 @@ exports[`help should show help information using the "help --mode" option: stder
 
 exports[`help should show help information using the "help --mode" option: stdout 1`] = `
 "Usage: webpack --mode <value>
-Description: Defines the mode to pass to webpack.
+Description: Enable production optimizations or development hints.
 Possible values: \\"development | production | none\\"
 
 To see list of all supported commands and options run 'webpack --help=verbose'.
@@ -2504,7 +2528,7 @@ exports[`help should show help information using the "help --no-stats" option: s
 
 exports[`help should show help information using the "help --no-stats" option: stdout 1`] = `
 "Usage: webpack --no-stats
-Description: Disable stats output.
+Description: Negative 'stats' option.
 
 To see list of all supported commands and options run 'webpack --help=verbose'.
 
@@ -2517,7 +2541,7 @@ exports[`help should show help information using the "help --stats" option: stde
 
 exports[`help should show help information using the "help --stats" option: stdout 1`] = `
 "Usage: webpack --stats [value]
-Description: It instructs webpack on how to treat the stats e.g. verbose.
+Description: Stats options object or preset name.
 Possible values: \\"none | summary | errors-only | errors-warnings | minimal | normal | detailed | verbose\\"
 
 To see list of all supported commands and options run 'webpack --help=verbose'.
@@ -2532,7 +2556,7 @@ exports[`help should show help information using the "help --target" option: std
 exports[`help should show help information using the "help --target" option: stdout 1`] = `
 "Usage: webpack --target <value...>
 Short: webpack -t <value...>
-Description: Sets the build target e.g. node.
+Description: Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
 Possible values: \\"false\\"
 
 To see list of all supported commands and options run 'webpack --help=verbose'.
@@ -2587,7 +2611,7 @@ exports[`help should show help information using the "help serve --mode" option:
 
 exports[`help should show help information using the "help serve --mode" option: stdout 1`] = `
 "Usage: webpack serve --mode <value>
-Description: Defines the mode to pass to webpack.
+Description: Enable production optimizations or development hints.
 Possible values: \\"development | production | none\\"
 
 To see list of all supported commands and options run 'webpack --help=verbose'.
@@ -2653,20 +2677,20 @@ Options:
   --node-env <value>                               Sets process.env.NODE_ENV to the specified value.
   --progress [value]                               Print compilation progress during build.
   -j, --json [value]                               Prints result as JSON or store it in a file.
-  -d, --devtool <value>                            Determine source maps to use.
-  --no-devtool                                     Do not generate source maps.
-  --entry <value...>                               The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>                                   Defines the mode to pass to webpack.
+  -d, --devtool <value>                            A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool                                     Negative 'devtool' option.
+  --entry <value...>                               A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>                                   Enable production optimizations or development hints.
   --name <value>                                   Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>                        Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]                                  It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                                       Disable stats output.
-  -t, --target <value...>                          Sets the build target e.g. node.
+  -o, --output-path <value>                        The output directory as **absolute path** (required).
+  --stats [value]                                  Stats options object or preset name.
+  --no-stats                                       Negative 'stats' option.
+  -t, --target <value...>                          Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                                      Negative 'target' option.
-  -w, --watch                                      Watch for files changes.
-  --no-watch                                       Do not watch for file changes.
+  -w, --watch                                      Enter watch mode, which rebuilds on file change.
+  --no-watch                                       Negative 'watch' option.
   --watch-options-stdin                            Stop watching when stdin stream has ended.
-  --no-watch-options-stdin                         Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin                         Negative 'watch-options-stdin' option.
 
 Global options:
   --color                                          Enable colors on console.
@@ -2708,20 +2732,20 @@ Options:
   --node-env <value>                               Sets process.env.NODE_ENV to the specified value.
   --progress [value]                               Print compilation progress during build.
   -j, --json [value]                               Prints result as JSON or store it in a file.
-  -d, --devtool <value>                            Determine source maps to use.
-  --no-devtool                                     Do not generate source maps.
-  --entry <value...>                               The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>                                   Defines the mode to pass to webpack.
+  -d, --devtool <value>                            A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool                                     Negative 'devtool' option.
+  --entry <value...>                               A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>                                   Enable production optimizations or development hints.
   --name <value>                                   Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>                        Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]                                  It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                                       Disable stats output.
-  -t, --target <value...>                          Sets the build target e.g. node.
+  -o, --output-path <value>                        The output directory as **absolute path** (required).
+  --stats [value]                                  Stats options object or preset name.
+  --no-stats                                       Negative 'stats' option.
+  -t, --target <value...>                          Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                                      Negative 'target' option.
-  -w, --watch                                      Watch for files changes.
-  --no-watch                                       Do not watch for file changes.
+  -w, --watch                                      Enter watch mode, which rebuilds on file change.
+  --no-watch                                       Negative 'watch' option.
   --watch-options-stdin                            Stop watching when stdin stream has ended.
-  --no-watch-options-stdin                         Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin                         Negative 'watch-options-stdin' option.
 
 Global options:
   --color                                          Enable colors on console.
diff --git a/test/help/__snapshots__/help.test.js.snap.devServer4.webpack5 b/test/help/__snapshots__/help.test.js.snap.devServer4.webpack5
index 9261fd56e49..306b6f459b6 100644
--- a/test/help/__snapshots__/help.test.js.snap.devServer4.webpack5
+++ b/test/help/__snapshots__/help.test.js.snap.devServer4.webpack5
@@ -102,20 +102,20 @@ Options:
   --node-env <value>                               Sets process.env.NODE_ENV to the specified value.
   --progress [value]                               Print compilation progress during build.
   -j, --json [value]                               Prints result as JSON or store it in a file.
-  -d, --devtool <value>                            Determine source maps to use.
-  --no-devtool                                     Do not generate source maps.
-  --entry <value...>                               The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>                                   Defines the mode to pass to webpack.
+  -d, --devtool <value>                            A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool                                     Negative 'devtool' option.
+  --entry <value...>                               A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>                                   Enable production optimizations or development hints.
   --name <value>                                   Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>                        Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]                                  It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                                       Disable stats output.
-  -t, --target <value...>                          Sets the build target e.g. node.
+  -o, --output-path <value>                        The output directory as **absolute path** (required).
+  --stats [value]                                  Stats options object or preset name.
+  --no-stats                                       Negative 'stats' option.
+  -t, --target <value...>                          Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                                      Negative 'target' option.
-  -w, --watch                                      Watch for files changes.
-  --no-watch                                       Do not watch for file changes.
+  -w, --watch                                      Enter watch mode, which rebuilds on file change.
+  --no-watch                                       Negative 'watch' option.
   --watch-options-stdin                            Stop watching when stdin stream has ended.
-  --no-watch-options-stdin                         Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin                         Negative 'watch-options-stdin' option.
 
 Global options:
   --color                                          Enable colors on console.
@@ -159,20 +159,20 @@ Options:
   --node-env <value>                               Sets process.env.NODE_ENV to the specified value.
   --progress [value]                               Print compilation progress during build.
   -j, --json [value]                               Prints result as JSON or store it in a file.
-  -d, --devtool <value>                            Determine source maps to use.
-  --no-devtool                                     Do not generate source maps.
-  --entry <value...>                               The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>                                   Defines the mode to pass to webpack.
+  -d, --devtool <value>                            A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool                                     Negative 'devtool' option.
+  --entry <value...>                               A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>                                   Enable production optimizations or development hints.
   --name <value>                                   Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>                        Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]                                  It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                                       Disable stats output.
-  -t, --target <value...>                          Sets the build target e.g. node.
+  -o, --output-path <value>                        The output directory as **absolute path** (required).
+  --stats [value]                                  Stats options object or preset name.
+  --no-stats                                       Negative 'stats' option.
+  -t, --target <value...>                          Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                                      Negative 'target' option.
-  -w, --watch                                      Watch for files changes.
-  --no-watch                                       Do not watch for file changes.
+  -w, --watch                                      Enter watch mode, which rebuilds on file change.
+  --no-watch                                       Negative 'watch' option.
   --watch-options-stdin                            Stop watching when stdin stream has ended.
-  --no-watch-options-stdin                         Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin                         Negative 'watch-options-stdin' option.
 
 Global options:
   --color                                          Enable colors on console.
@@ -216,20 +216,20 @@ Options:
   --node-env <value>                               Sets process.env.NODE_ENV to the specified value.
   --progress [value]                               Print compilation progress during build.
   -j, --json [value]                               Prints result as JSON or store it in a file.
-  -d, --devtool <value>                            Determine source maps to use.
-  --no-devtool                                     Do not generate source maps.
-  --entry <value...>                               The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>                                   Defines the mode to pass to webpack.
+  -d, --devtool <value>                            A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool                                     Negative 'devtool' option.
+  --entry <value...>                               A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>                                   Enable production optimizations or development hints.
   --name <value>                                   Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>                        Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]                                  It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                                       Disable stats output.
-  -t, --target <value...>                          Sets the build target e.g. node.
+  -o, --output-path <value>                        The output directory as **absolute path** (required).
+  --stats [value]                                  Stats options object or preset name.
+  --no-stats                                       Negative 'stats' option.
+  -t, --target <value...>                          Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                                      Negative 'target' option.
-  -w, --watch                                      Watch for files changes.
-  --no-watch                                       Do not watch for file changes.
+  -w, --watch                                      Enter watch mode, which rebuilds on file change.
+  --no-watch                                       Negative 'watch' option.
   --watch-options-stdin                            Stop watching when stdin stream has ended.
-  --no-watch-options-stdin                         Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin                         Negative 'watch-options-stdin' option.
 
 Global options:
   --color                                          Enable colors on console.
@@ -272,20 +272,20 @@ Options:
   --node-env <value>         Sets process.env.NODE_ENV to the specified value.
   --progress [value]         Print compilation progress during build.
   -j, --json [value]         Prints result as JSON or store it in a file.
-  -d, --devtool <value>      Determine source maps to use.
-  --no-devtool               Do not generate source maps.
-  --entry <value...>         The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>             Defines the mode to pass to webpack.
+  -d, --devtool <value>      A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool               Negative 'devtool' option.
+  --entry <value...>         A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>             Enable production optimizations or development hints.
   --name <value>             Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>  Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]            It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                 Disable stats output.
-  -t, --target <value...>    Sets the build target e.g. node.
+  -o, --output-path <value>  The output directory as **absolute path** (required).
+  --stats [value]            Stats options object or preset name.
+  --no-stats                 Negative 'stats' option.
+  -t, --target <value...>    Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                Negative 'target' option.
-  -w, --watch                Watch for files changes.
-  --no-watch                 Do not watch for file changes.
+  -w, --watch                Enter watch mode, which rebuilds on file change.
+  --no-watch                 Negative 'watch' option.
   --watch-options-stdin      Stop watching when stdin stream has ended.
-  --no-watch-options-stdin   Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin   Negative 'watch-options-stdin' option.
 
 Global options:
   --color                    Enable colors on console.
@@ -316,20 +316,20 @@ Options:
   --node-env <value>         Sets process.env.NODE_ENV to the specified value.
   --progress [value]         Print compilation progress during build.
   -j, --json [value]         Prints result as JSON or store it in a file.
-  -d, --devtool <value>      Determine source maps to use.
-  --no-devtool               Do not generate source maps.
-  --entry <value...>         The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>             Defines the mode to pass to webpack.
+  -d, --devtool <value>      A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool               Negative 'devtool' option.
+  --entry <value...>         A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>             Enable production optimizations or development hints.
   --name <value>             Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>  Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]            It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                 Disable stats output.
-  -t, --target <value...>    Sets the build target e.g. node.
+  -o, --output-path <value>  The output directory as **absolute path** (required).
+  --stats [value]            Stats options object or preset name.
+  --no-stats                 Negative 'stats' option.
+  -t, --target <value...>    Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                Negative 'target' option.
-  -w, --watch                Watch for files changes.
-  --no-watch                 Do not watch for file changes.
+  -w, --watch                Enter watch mode, which rebuilds on file change.
+  --no-watch                 Negative 'watch' option.
   --watch-options-stdin      Stop watching when stdin stream has ended.
-  --no-watch-options-stdin   Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin   Negative 'watch-options-stdin' option.
 
 Global options:
   --color                    Enable colors on console.
@@ -363,24 +363,28 @@ Options:
   --node-env <value>         Sets process.env.NODE_ENV to the specified value.
   --progress [value]         Print compilation progress during build.
   -j, --json [value]         Prints result as JSON or store it in a file.
-  -d, --devtool <value>      Determine source maps to use.
-  --no-devtool               Do not generate source maps.
-  --entry <value...>         The entry point(s) of your application e.g.
-                             ./src/main.js.
-  --mode <value>             Defines the mode to pass to webpack.
+  -d, --devtool <value>      A developer tool to enhance debugging (false |
+                             eval |
+                             [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool               Negative 'devtool' option.
+  --entry <value...>         A module that is loaded upon startup. Only the
+                             last one is exported.
+  --mode <value>             Enable production optimizations or development
+                             hints.
   --name <value>             Name of the configuration. Used when loading
                              multiple configurations.
-  -o, --output-path <value>  Output location of the file generated by webpack
-                             e.g. ./dist/.
-  --stats [value]            It instructs webpack on how to treat the stats
-                             e.g. verbose.
-  --no-stats                 Disable stats output.
-  -t, --target <value...>    Sets the build target e.g. node.
+  -o, --output-path <value>  The output directory as **absolute path**
+                             (required).
+  --stats [value]            Stats options object or preset name.
+  --no-stats                 Negative 'stats' option.
+  -t, --target <value...>    Environment to build for. Environment to build
+                             for. An array of environments to build for all of
+                             them when possible.
   --no-target                Negative 'target' option.
-  -w, --watch                Watch for files changes.
-  --no-watch                 Do not watch for file changes.
+  -w, --watch                Enter watch mode, which rebuilds on file change.
+  --no-watch                 Negative 'watch' option.
   --watch-options-stdin      Stop watching when stdin stream has ended.
-  --no-watch-options-stdin   Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin   Negative 'watch-options-stdin' option.
 
 Global options:
   --color                    Enable colors on console.
@@ -416,24 +420,28 @@ Options:
   --node-env <value>         Sets process.env.NODE_ENV to the specified value.
   --progress [value]         Print compilation progress during build.
   -j, --json [value]         Prints result as JSON or store it in a file.
-  -d, --devtool <value>      Determine source maps to use.
-  --no-devtool               Do not generate source maps.
-  --entry <value...>         The entry point(s) of your application e.g.
-                             ./src/main.js.
-  --mode <value>             Defines the mode to pass to webpack.
+  -d, --devtool <value>      A developer tool to enhance debugging (false |
+                             eval |
+                             [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool               Negative 'devtool' option.
+  --entry <value...>         A module that is loaded upon startup. Only the
+                             last one is exported.
+  --mode <value>             Enable production optimizations or development
+                             hints.
   --name <value>             Name of the configuration. Used when loading
                              multiple configurations.
-  -o, --output-path <value>  Output location of the file generated by webpack
-                             e.g. ./dist/.
-  --stats [value]            It instructs webpack on how to treat the stats
-                             e.g. verbose.
-  --no-stats                 Disable stats output.
-  -t, --target <value...>    Sets the build target e.g. node.
+  -o, --output-path <value>  The output directory as **absolute path**
+                             (required).
+  --stats [value]            Stats options object or preset name.
+  --no-stats                 Negative 'stats' option.
+  -t, --target <value...>    Environment to build for. Environment to build
+                             for. An array of environments to build for all of
+                             them when possible.
   --no-target                Negative 'target' option.
-  -w, --watch                Watch for files changes.
-  --no-watch                 Do not watch for file changes.
+  -w, --watch                Enter watch mode, which rebuilds on file change.
+  --no-watch                 Negative 'watch' option.
   --watch-options-stdin      Stop watching when stdin stream has ended.
-  --no-watch-options-stdin   Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin   Negative 'watch-options-stdin' option.
 
 Global options:
   --color                    Enable colors on console.
@@ -466,20 +474,20 @@ Options:
   --node-env <value>         Sets process.env.NODE_ENV to the specified value.
   --progress [value]         Print compilation progress during build.
   -j, --json [value]         Prints result as JSON or store it in a file.
-  -d, --devtool <value>      Determine source maps to use.
-  --no-devtool               Do not generate source maps.
-  --entry <value...>         The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>             Defines the mode to pass to webpack.
+  -d, --devtool <value>      A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool               Negative 'devtool' option.
+  --entry <value...>         A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>             Enable production optimizations or development hints.
   --name <value>             Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>  Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]            It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                 Disable stats output.
-  -t, --target <value...>    Sets the build target e.g. node.
+  -o, --output-path <value>  The output directory as **absolute path** (required).
+  --stats [value]            Stats options object or preset name.
+  --no-stats                 Negative 'stats' option.
+  -t, --target <value...>    Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                Negative 'target' option.
-  -w, --watch                Watch for files changes.
-  --no-watch                 Do not watch for file changes.
+  -w, --watch                Enter watch mode, which rebuilds on file change.
+  --no-watch                 Negative 'watch' option.
   --watch-options-stdin      Stop watching when stdin stream has ended.
-  --no-watch-options-stdin   Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin   Negative 'watch-options-stdin' option.
 
 Global options:
   --color                    Enable colors on console.
@@ -510,20 +518,20 @@ Options:
   --node-env <value>         Sets process.env.NODE_ENV to the specified value.
   --progress [value]         Print compilation progress during build.
   -j, --json [value]         Prints result as JSON or store it in a file.
-  -d, --devtool <value>      Determine source maps to use.
-  --no-devtool               Do not generate source maps.
-  --entry <value...>         The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>             Defines the mode to pass to webpack.
+  -d, --devtool <value>      A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool               Negative 'devtool' option.
+  --entry <value...>         A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>             Enable production optimizations or development hints.
   --name <value>             Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>  Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]            It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                 Disable stats output.
-  -t, --target <value...>    Sets the build target e.g. node.
+  -o, --output-path <value>  The output directory as **absolute path** (required).
+  --stats [value]            Stats options object or preset name.
+  --no-stats                 Negative 'stats' option.
+  -t, --target <value...>    Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                Negative 'target' option.
-  -w, --watch                Watch for files changes.
-  --no-watch                 Do not watch for file changes.
+  -w, --watch                Enter watch mode, which rebuilds on file change.
+  --no-watch                 Negative 'watch' option.
   --watch-options-stdin      Stop watching when stdin stream has ended.
-  --no-watch-options-stdin   Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin   Negative 'watch-options-stdin' option.
 
 Global options:
   --color                    Enable colors on console.
@@ -1488,18 +1496,18 @@ Options:
   --node-env <value>         Sets process.env.NODE_ENV to the specified value.
   --progress [value]         Print compilation progress during build.
   -j, --json [value]         Prints result as JSON or store it in a file.
-  -d, --devtool <value>      Determine source maps to use.
-  --no-devtool               Do not generate source maps.
-  --entry <value...>         The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>             Defines the mode to pass to webpack.
+  -d, --devtool <value>      A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool               Negative 'devtool' option.
+  --entry <value...>         A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>             Enable production optimizations or development hints.
   --name <value>             Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>  Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]            It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                 Disable stats output.
-  -t, --target <value...>    Sets the build target e.g. node.
+  -o, --output-path <value>  The output directory as **absolute path** (required).
+  --stats [value]            Stats options object or preset name.
+  --no-stats                 Negative 'stats' option.
+  -t, --target <value...>    Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                Negative 'target' option.
   --watch-options-stdin      Stop watching when stdin stream has ended.
-  --no-watch-options-stdin   Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin   Negative 'watch-options-stdin' option.
 
 Global options:
   --color                    Enable colors on console.
@@ -1530,18 +1538,18 @@ Options:
   --node-env <value>         Sets process.env.NODE_ENV to the specified value.
   --progress [value]         Print compilation progress during build.
   -j, --json [value]         Prints result as JSON or store it in a file.
-  -d, --devtool <value>      Determine source maps to use.
-  --no-devtool               Do not generate source maps.
-  --entry <value...>         The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>             Defines the mode to pass to webpack.
+  -d, --devtool <value>      A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool               Negative 'devtool' option.
+  --entry <value...>         A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>             Enable production optimizations or development hints.
   --name <value>             Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>  Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]            It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                 Disable stats output.
-  -t, --target <value...>    Sets the build target e.g. node.
+  -o, --output-path <value>  The output directory as **absolute path** (required).
+  --stats [value]            Stats options object or preset name.
+  --no-stats                 Negative 'stats' option.
+  -t, --target <value...>    Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                Negative 'target' option.
   --watch-options-stdin      Stop watching when stdin stream has ended.
-  --no-watch-options-stdin   Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin   Negative 'watch-options-stdin' option.
 
 Global options:
   --color                    Enable colors on console.
@@ -1575,22 +1583,26 @@ Options:
   --node-env <value>         Sets process.env.NODE_ENV to the specified value.
   --progress [value]         Print compilation progress during build.
   -j, --json [value]         Prints result as JSON or store it in a file.
-  -d, --devtool <value>      Determine source maps to use.
-  --no-devtool               Do not generate source maps.
-  --entry <value...>         The entry point(s) of your application e.g.
-                             ./src/main.js.
-  --mode <value>             Defines the mode to pass to webpack.
+  -d, --devtool <value>      A developer tool to enhance debugging (false |
+                             eval |
+                             [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool               Negative 'devtool' option.
+  --entry <value...>         A module that is loaded upon startup. Only the
+                             last one is exported.
+  --mode <value>             Enable production optimizations or development
+                             hints.
   --name <value>             Name of the configuration. Used when loading
                              multiple configurations.
-  -o, --output-path <value>  Output location of the file generated by webpack
-                             e.g. ./dist/.
-  --stats [value]            It instructs webpack on how to treat the stats
-                             e.g. verbose.
-  --no-stats                 Disable stats output.
-  -t, --target <value...>    Sets the build target e.g. node.
+  -o, --output-path <value>  The output directory as **absolute path**
+                             (required).
+  --stats [value]            Stats options object or preset name.
+  --no-stats                 Negative 'stats' option.
+  -t, --target <value...>    Environment to build for. Environment to build
+                             for. An array of environments to build for all of
+                             them when possible.
   --no-target                Negative 'target' option.
   --watch-options-stdin      Stop watching when stdin stream has ended.
-  --no-watch-options-stdin   Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin   Negative 'watch-options-stdin' option.
 
 Global options:
   --color                    Enable colors on console.
@@ -1626,22 +1638,26 @@ Options:
   --node-env <value>         Sets process.env.NODE_ENV to the specified value.
   --progress [value]         Print compilation progress during build.
   -j, --json [value]         Prints result as JSON or store it in a file.
-  -d, --devtool <value>      Determine source maps to use.
-  --no-devtool               Do not generate source maps.
-  --entry <value...>         The entry point(s) of your application e.g.
-                             ./src/main.js.
-  --mode <value>             Defines the mode to pass to webpack.
+  -d, --devtool <value>      A developer tool to enhance debugging (false |
+                             eval |
+                             [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool               Negative 'devtool' option.
+  --entry <value...>         A module that is loaded upon startup. Only the
+                             last one is exported.
+  --mode <value>             Enable production optimizations or development
+                             hints.
   --name <value>             Name of the configuration. Used when loading
                              multiple configurations.
-  -o, --output-path <value>  Output location of the file generated by webpack
-                             e.g. ./dist/.
-  --stats [value]            It instructs webpack on how to treat the stats
-                             e.g. verbose.
-  --no-stats                 Disable stats output.
-  -t, --target <value...>    Sets the build target e.g. node.
+  -o, --output-path <value>  The output directory as **absolute path**
+                             (required).
+  --stats [value]            Stats options object or preset name.
+  --no-stats                 Negative 'stats' option.
+  -t, --target <value...>    Environment to build for. Environment to build
+                             for. An array of environments to build for all of
+                             them when possible.
   --no-target                Negative 'target' option.
   --watch-options-stdin      Stop watching when stdin stream has ended.
-  --no-watch-options-stdin   Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin   Negative 'watch-options-stdin' option.
 
 Global options:
   --color                    Enable colors on console.
@@ -1674,18 +1690,18 @@ Options:
   --node-env <value>         Sets process.env.NODE_ENV to the specified value.
   --progress [value]         Print compilation progress during build.
   -j, --json [value]         Prints result as JSON or store it in a file.
-  -d, --devtool <value>      Determine source maps to use.
-  --no-devtool               Do not generate source maps.
-  --entry <value...>         The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>             Defines the mode to pass to webpack.
+  -d, --devtool <value>      A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool               Negative 'devtool' option.
+  --entry <value...>         A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>             Enable production optimizations or development hints.
   --name <value>             Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>  Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]            It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                 Disable stats output.
-  -t, --target <value...>    Sets the build target e.g. node.
+  -o, --output-path <value>  The output directory as **absolute path** (required).
+  --stats [value]            Stats options object or preset name.
+  --no-stats                 Negative 'stats' option.
+  -t, --target <value...>    Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                Negative 'target' option.
   --watch-options-stdin      Stop watching when stdin stream has ended.
-  --no-watch-options-stdin   Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin   Negative 'watch-options-stdin' option.
 
 Global options:
   --color                    Enable colors on console.
@@ -1716,18 +1732,18 @@ Options:
   --node-env <value>         Sets process.env.NODE_ENV to the specified value.
   --progress [value]         Print compilation progress during build.
   -j, --json [value]         Prints result as JSON or store it in a file.
-  -d, --devtool <value>      Determine source maps to use.
-  --no-devtool               Do not generate source maps.
-  --entry <value...>         The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>             Defines the mode to pass to webpack.
+  -d, --devtool <value>      A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool               Negative 'devtool' option.
+  --entry <value...>         A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>             Enable production optimizations or development hints.
   --name <value>             Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>  Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]            It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                 Disable stats output.
-  -t, --target <value...>    Sets the build target e.g. node.
+  -o, --output-path <value>  The output directory as **absolute path** (required).
+  --stats [value]            Stats options object or preset name.
+  --no-stats                 Negative 'stats' option.
+  -t, --target <value...>    Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                Negative 'target' option.
   --watch-options-stdin      Stop watching when stdin stream has ended.
-  --no-watch-options-stdin   Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin   Negative 'watch-options-stdin' option.
 
 Global options:
   --color                    Enable colors on console.
@@ -1759,20 +1775,20 @@ Options:
   --node-env <value>                               Sets process.env.NODE_ENV to the specified value.
   --progress [value]                               Print compilation progress during build.
   -j, --json [value]                               Prints result as JSON or store it in a file.
-  -d, --devtool <value>                            Determine source maps to use.
-  --no-devtool                                     Do not generate source maps.
-  --entry <value...>                               The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>                                   Defines the mode to pass to webpack.
+  -d, --devtool <value>                            A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool                                     Negative 'devtool' option.
+  --entry <value...>                               A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>                                   Enable production optimizations or development hints.
   --name <value>                                   Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>                        Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]                                  It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                                       Disable stats output.
-  -t, --target <value...>                          Sets the build target e.g. node.
+  -o, --output-path <value>                        The output directory as **absolute path** (required).
+  --stats [value]                                  Stats options object or preset name.
+  --no-stats                                       Negative 'stats' option.
+  -t, --target <value...>                          Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                                      Negative 'target' option.
-  -w, --watch                                      Watch for files changes.
-  --no-watch                                       Do not watch for file changes.
+  -w, --watch                                      Enter watch mode, which rebuilds on file change.
+  --no-watch                                       Negative 'watch' option.
   --watch-options-stdin                            Stop watching when stdin stream has ended.
-  --no-watch-options-stdin                         Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin                         Negative 'watch-options-stdin' option.
 
 Global options:
   --color                                          Enable colors on console.
@@ -1816,20 +1832,20 @@ Options:
   --node-env <value>                               Sets process.env.NODE_ENV to the specified value.
   --progress [value]                               Print compilation progress during build.
   -j, --json [value]                               Prints result as JSON or store it in a file.
-  -d, --devtool <value>                            Determine source maps to use.
-  --no-devtool                                     Do not generate source maps.
-  --entry <value...>                               The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>                                   Defines the mode to pass to webpack.
+  -d, --devtool <value>                            A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool                                     Negative 'devtool' option.
+  --entry <value...>                               A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>                                   Enable production optimizations or development hints.
   --name <value>                                   Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>                        Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]                                  It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                                       Disable stats output.
-  -t, --target <value...>                          Sets the build target e.g. node.
+  -o, --output-path <value>                        The output directory as **absolute path** (required).
+  --stats [value]                                  Stats options object or preset name.
+  --no-stats                                       Negative 'stats' option.
+  -t, --target <value...>                          Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                                      Negative 'target' option.
-  -w, --watch                                      Watch for files changes.
-  --no-watch                                       Do not watch for file changes.
+  -w, --watch                                      Enter watch mode, which rebuilds on file change.
+  --no-watch                                       Negative 'watch' option.
   --watch-options-stdin                            Stop watching when stdin stream has ended.
-  --no-watch-options-stdin                         Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin                         Negative 'watch-options-stdin' option.
 
 Global options:
   --color                                          Enable colors on console.
@@ -1887,7 +1903,7 @@ exports[`help should show help information using the "help --mode" option: stder
 
 exports[`help should show help information using the "help --mode" option: stdout 1`] = `
 "Usage: webpack --mode <value>
-Description: Defines the mode to pass to webpack.
+Description: Enable production optimizations or development hints.
 Possible values: \\"development | production | none\\"
 
 To see list of all supported commands and options run 'webpack --help=verbose'.
@@ -1914,7 +1930,7 @@ exports[`help should show help information using the "help --no-stats" option: s
 
 exports[`help should show help information using the "help --no-stats" option: stdout 1`] = `
 "Usage: webpack --no-stats
-Description: Disable stats output.
+Description: Negative 'stats' option.
 
 To see list of all supported commands and options run 'webpack --help=verbose'.
 
@@ -1927,7 +1943,7 @@ exports[`help should show help information using the "help --stats" option: stde
 
 exports[`help should show help information using the "help --stats" option: stdout 1`] = `
 "Usage: webpack --stats [value]
-Description: It instructs webpack on how to treat the stats e.g. verbose.
+Description: Stats options object or preset name.
 Possible values: \\"none | summary | errors-only | errors-warnings | minimal | normal | detailed | verbose\\"
 
 To see list of all supported commands and options run 'webpack --help=verbose'.
@@ -1942,7 +1958,7 @@ exports[`help should show help information using the "help --target" option: std
 exports[`help should show help information using the "help --target" option: stdout 1`] = `
 "Usage: webpack --target <value...>
 Short: webpack -t <value...>
-Description: Sets the build target e.g. node.
+Description: Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
 Possible values: \\"false\\"
 
 To see list of all supported commands and options run 'webpack --help=verbose'.
@@ -1997,7 +2013,7 @@ exports[`help should show help information using the "help serve --mode" option:
 
 exports[`help should show help information using the "help serve --mode" option: stdout 1`] = `
 "Usage: webpack serve --mode <value>
-Description: Defines the mode to pass to webpack.
+Description: Enable production optimizations or development hints.
 Possible values: \\"development | production | none\\"
 
 To see list of all supported commands and options run 'webpack --help=verbose'.
@@ -2063,20 +2079,20 @@ Options:
   --node-env <value>                               Sets process.env.NODE_ENV to the specified value.
   --progress [value]                               Print compilation progress during build.
   -j, --json [value]                               Prints result as JSON or store it in a file.
-  -d, --devtool <value>                            Determine source maps to use.
-  --no-devtool                                     Do not generate source maps.
-  --entry <value...>                               The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>                                   Defines the mode to pass to webpack.
+  -d, --devtool <value>                            A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool                                     Negative 'devtool' option.
+  --entry <value...>                               A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>                                   Enable production optimizations or development hints.
   --name <value>                                   Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>                        Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]                                  It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                                       Disable stats output.
-  -t, --target <value...>                          Sets the build target e.g. node.
+  -o, --output-path <value>                        The output directory as **absolute path** (required).
+  --stats [value]                                  Stats options object or preset name.
+  --no-stats                                       Negative 'stats' option.
+  -t, --target <value...>                          Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                                      Negative 'target' option.
-  -w, --watch                                      Watch for files changes.
-  --no-watch                                       Do not watch for file changes.
+  -w, --watch                                      Enter watch mode, which rebuilds on file change.
+  --no-watch                                       Negative 'watch' option.
   --watch-options-stdin                            Stop watching when stdin stream has ended.
-  --no-watch-options-stdin                         Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin                         Negative 'watch-options-stdin' option.
 
 Global options:
   --color                                          Enable colors on console.
@@ -2118,20 +2134,20 @@ Options:
   --node-env <value>                               Sets process.env.NODE_ENV to the specified value.
   --progress [value]                               Print compilation progress during build.
   -j, --json [value]                               Prints result as JSON or store it in a file.
-  -d, --devtool <value>                            Determine source maps to use.
-  --no-devtool                                     Do not generate source maps.
-  --entry <value...>                               The entry point(s) of your application e.g. ./src/main.js.
-  --mode <value>                                   Defines the mode to pass to webpack.
+  -d, --devtool <value>                            A developer tool to enhance debugging (false | eval | [inline-|hidden-|eval-][nosources-][cheap-[module-]]source-map).
+  --no-devtool                                     Negative 'devtool' option.
+  --entry <value...>                               A module that is loaded upon startup. Only the last one is exported.
+  --mode <value>                                   Enable production optimizations or development hints.
   --name <value>                                   Name of the configuration. Used when loading multiple configurations.
-  -o, --output-path <value>                        Output location of the file generated by webpack e.g. ./dist/.
-  --stats [value]                                  It instructs webpack on how to treat the stats e.g. verbose.
-  --no-stats                                       Disable stats output.
-  -t, --target <value...>                          Sets the build target e.g. node.
+  -o, --output-path <value>                        The output directory as **absolute path** (required).
+  --stats [value]                                  Stats options object or preset name.
+  --no-stats                                       Negative 'stats' option.
+  -t, --target <value...>                          Environment to build for. Environment to build for. An array of environments to build for all of them when possible.
   --no-target                                      Negative 'target' option.
-  -w, --watch                                      Watch for files changes.
-  --no-watch                                       Do not watch for file changes.
+  -w, --watch                                      Enter watch mode, which rebuilds on file change.
+  --no-watch                                       Negative 'watch' option.
   --watch-options-stdin                            Stop watching when stdin stream has ended.
-  --no-watch-options-stdin                         Do not stop watching when stdin stream has ended.
+  --no-watch-options-stdin                         Negative 'watch-options-stdin' option.
 
 Global options:
   --color                                          Enable colors on console.
diff --git a/yarn.lock b/yarn.lock
index 95d79c3ecd6..9530557ae6e 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3439,9 +3439,9 @@ body-parser@1.20.0:
     unpipe "1.0.0"
 
 bonjour-service@^1.0.11:
-  version "1.0.14"
-  resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.0.14.tgz#c346f5bc84e87802d08f8d5a60b93f758e514ee7"
-  integrity sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==
+  version "1.0.13"
+  resolved "https://registry.yarnpkg.com/bonjour-service/-/bonjour-service-1.0.13.tgz#4ac003dc1626023252d58adf2946f57e5da450c1"
+  integrity sha512-LWKRU/7EqDUC9CTAQtuZl5HzBALoCYwtLhffW3et7vZMwv3bWLpJf8bRYlMD5OCcDpTfnPgNCV4yo9ZIaJGMiA==
   dependencies:
     array-flatten "^2.1.2"
     dns-equal "^1.0.0"
@@ -8334,7 +8334,14 @@ mime-db@1.52.0, "mime-db@>= 1.43.0 < 2":
   resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
   integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
 
-mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34:
+mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34:
+  version "2.1.34"
+  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24"
+  integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==
+  dependencies:
+    mime-db "1.51.0"
+
+mime-types@^2.1.31:
   version "2.1.35"
   resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
   integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==