From 1a152f50f597067cb6a2a012080f299a48f1acb7 Mon Sep 17 00:00:00 2001 From: jamesgeorge007 Date: Sun, 1 Nov 2020 12:09:20 +0530 Subject: [PATCH] feat: suggest the closest match for an unknown flag --- packages/webpack-cli/lib/bootstrap.js | 6 ++++++ packages/webpack-cli/package.json | 1 + 2 files changed, 7 insertions(+) diff --git a/packages/webpack-cli/lib/bootstrap.js b/packages/webpack-cli/lib/bootstrap.js index 56996ec64c7..b6fc82879c6 100644 --- a/packages/webpack-cli/lib/bootstrap.js +++ b/packages/webpack-cli/lib/bootstrap.js @@ -3,6 +3,7 @@ const { core } = require('./utils/cli-flags'); const logger = require('./utils/logger'); const { isCommandUsed } = require('./utils/arg-utils'); const argParser = require('./utils/arg-parser'); +const leven = require('leven'); process.title = 'webpack-cli'; @@ -39,6 +40,11 @@ const runCLI = async (cliArgs) => { if (parsedArgs.unknownArgs.length > 0) { parsedArgs.unknownArgs.forEach(async (unknown) => { logger.error(`Unknown argument: ${unknown}`); + const strippedFlag = unknown.substr(2); + const { name: suggestion } = core.find((flag) => leven(strippedFlag, flag.name) < 3); + if (suggestion) { + logger.raw(`Did you mean --${suggestion}?`); + } }); process.exit(2); diff --git a/packages/webpack-cli/package.json b/packages/webpack-cli/package.json index c6e0534cd41..67855ac6601 100644 --- a/packages/webpack-cli/package.json +++ b/packages/webpack-cli/package.json @@ -37,6 +37,7 @@ "execa": "^4.1.0", "import-local": "^3.0.2", "interpret": "^2.2.0", + "leven": "^3.1.0", "rechoir": "^0.7.0", "v8-compile-cache": "^2.2.0", "webpack-merge": "^4.2.2"