v12.0.0
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 passThroughOptionsconstraints when using.addCommandand 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 privatewith 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 programexport 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