diff --git a/packages/webpack-cli/lib/utils/arg-parser.js b/packages/webpack-cli/lib/utils/arg-parser.js index f364fe31168..66aa8043bb8 100644 --- a/packages/webpack-cli/lib/utils/arg-parser.js +++ b/packages/webpack-cli/lib/utils/arg-parser.js @@ -93,7 +93,7 @@ function argParser(options, args, argsOnly = false, name = '', helpFunction = un delete opts[key]; } }); - + return { unknownArgs, opts, diff --git a/packages/webpack-cli/lib/utils/cli-flags.js b/packages/webpack-cli/lib/utils/cli-flags.js index 177dce740e7..dd1ad3fb9f9 100644 --- a/packages/webpack-cli/lib/utils/cli-flags.js +++ b/packages/webpack-cli/lib/utils/cli-flags.js @@ -10,7 +10,7 @@ const ZERO_CONFIG_GROUP = 'zero-config'; // Extract all the flages 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 flagsFromCore = version.startsWith(5) +let flagsFromCore = version.startsWith(5) ? Object.entries(require('webpack').cli.getArguments()).map(([flag, meta]) => { if (meta.simpleType === 'string') { meta.type = String; @@ -30,6 +30,9 @@ const flagsFromCore = version.startsWith(5) }) : []; +// remove entry flag to avoid duplicate entry +flagsFromCore = flagsFromCore.filter((flag) => flag.name !== 'entry'); + module.exports = { groups: { HELP_GROUP, @@ -94,6 +97,16 @@ module.exports = { }, ], core: [ + { + name: 'entry', + usage: '--entry | --entry --entry ', + type: String, + multiple: true, + defaultOption: true, + group: BASIC_GROUP, + description: 'The entry point(s) of your application e.g. ./src/main.js', + link: 'https://webpack.js.org/concepts/#entry', + }, { name: 'config', usage: '--config ', diff --git a/test/core-flags/core-flags.test.js b/test/core-flags/core-flags.test.js deleted file mode 100644 index 8fa5aed6445..00000000000 --- a/test/core-flags/core-flags.test.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -const { run } = require('../utils/test-utils'); - -const coreFlags = Object.entries(require('webpack').cli.getArguments()).map(([flag, meta]) => { - return { - ...meta, - name: flag, - group: 'core', - }; -}); - - -const boolFlags = coreFlags.filter((flag) => flag.simpleType === 'boolean' && !flag.name.includes('cache') && !flag.name.includes('entry-reset')); - -boolFlags.forEach(e => { - console.log(e.name); -}) - -describe('--bail flag', () => { - // Todo -}); diff --git a/test/core-flags/experiments-flag.test.js b/test/core-flags/experiments-flag.test.js index e5ddec8f6a1..2d1e233957d 100644 --- a/test/core-flags/experiments-flag.test.js +++ b/test/core-flags/experiments-flag.test.js @@ -3,7 +3,7 @@ const { run, hyphenToUpperCase } = require('../utils/test-utils'); const { flagsFromCore } = require('../../packages/webpack-cli/lib/utils/cli-flags'); -const experimentsFlags = flagsFromCore.filter((flag) => flag.name.includes('experiments-')); +const experimentsFlags = flagsFromCore.filter(({ name }) => name.startsWith('experiments-')); describe('experiments option related flag', () => { experimentsFlags.forEach((flag) => {