Commander.js v9.0.0 Release Notes
Release Date: 2022-01-28 // about 2 years ago-
โ Added
- simpler ECMAScript import ([#1589])
- Option.preset() allows specifying value/arg for option when used without option-argument (especially optional, but also boolean option) ([#1652])
.executableDir()
for custom search for subcommands ([#1571])- throw with helpful message if pass
Option
to.option()
or.requiredOption()
([#1655]) - ๐ง .
error()
for generating errors from client code just like Commander generated errors, with support for.configureOutput()
,.exitOverride()
, and.showHelpAfterError()
([#1675]) - ๐
.optsWithGlobals()
to return merged local and global options ([#1671])
๐ Changed
- ๐ฅ Breaking: Commander 9 requires Node.js v12.20.0 or higher
- โก๏ธ update package-lock.json to lockfile@2 format ([#1659])
- 0๏ธโฃ
showSuggestionAfterError
is now on by default ([#1657]) - ๐ฅ Breaking: default value specified for boolean option now always used as default value (see .preset() to match some previous behaviours) ([#1652])
- 0๏ธโฃ default value for boolean option only shown in help if true/false ([#1652])
- ๐ use command name as prefix for subcommand stand-alone executable name (with fallback to script name for backwards compatibility) ([#1571])
- ๐ allow absolute path with
executableFile
([#1571]) - โ removed restriction that nested subcommands must specify
executableFile
([#1571]) - TypeScript: allow passing readonly string array to
.choices()
[(#1667)] - ๐ TypeScript: allow passing readonly string array to
.parse()
,.parseAsync()
,.aliases()
[(#1669)]
๐ Fixed
- 0๏ธโฃ option with optional argument not supplied on command line now works when option already has a value, whether from default value or from previous arguments ([#1652])
โ Removed
- ๐ฅ Breaking: removed internal fallback to
require.main.filename
when script not known from arguments passed to.parse()
(can supply details using.name()
, and.executableDir()
orexecutableFile
) ([#1571])