Added
.addHelpOption()
as another way of configuring built-in help option (#2006).helpCommand()
for configuring built-in help command (#2087)
Fixed
- Breaking: use non-zero exit code when spawned executable subcommand terminates due to a signal (#2023)
- Breaking: check
passThroughOptions
constraints when using.addCommand
and throw if parent command does not have.enablePositionalOptions()
enabled (#1937)
Changed
- Breaking: Commander 12 requires Node.js v18 or higher (#2027)
- Breaking: throw an error if add an option with a flag which is already in use (#2055)
- Breaking: throw an error if add a command with name or alias which is already in use (#2059)
- Breaking: throw error when calling
.storeOptionsAsProperties()
after setting an option value (#1928) - replace non-standard JSDoc of
@api private
with documented@private
(#1949) .addHelpCommand()
now takes a Command (passing string or boolean still works as before but deprecated) (#2087)- refactor internal implementation of built-in help option (#2006)
- refactor internal implementation of built-in help command (#2087)
Deprecated
.addHelpCommand()
passing string or boolean (use.helpCommand()
or pass a Command) (#2087)
Removed
- Breaking: removed default export of a global Command instance from CommonJS (use the named
program
export instead) (#2017)
Migration Tips
global program
If you are using the deprecated default import of the global Command object, you need to switch to using a named import (or create a new Command
).
// const program = require('commander');
const { program } = require('commander');
option and command clashes
A couple of configuration problems now throw an error, which will pick up issues in existing programs:
- adding an option which uses the same flag as a previous option
- adding a command which uses the same name or alias as a previous command