Added
- style routines like
styleTitle()
to add color to help using.configureHelp()
or Help subclass (#2251) - color related support in
.configureOutput()
forgetOutHasColors()
,getErrHasColors()
, andstripColor()
(#2251) - Help property for
minWidthToWrap
(#2251) - Help methods for
displayWidth()
,boxWrap()
,preformatted()
et al (#2251)
Changed
- Breaking: excess command-arguments cause an error by default, see migration tips (#2223)
- Breaking: throw during Option construction for unsupported option flags, like multiple characters after single
-
(#2270) - TypeScript: include implicit
this
in parameters for action handler callback (#2197)
Deleted
- Breaking:
Help.wrap()
refactored intoformatItem()
andboxWrap()
(#2251)
Migration Tips
Excess command-arguments
It is now an error for the user to specify more command-arguments than are expected. (allowExcessArguments
is now false by default.)
Old code:
program.option('-p, --port <number>', 'port number');
program.action((options) => {
console.log(program.args);
});
Now shows an error:
$ node example.js a b c
error: too many arguments. Expected 0 arguments but got 3.
You can declare the expected arguments. The help will then be more accurate too. Note that declaring
new arguments will change what is passed to the action handler.
program.option('-p, --port <number>', 'port number');
program.argument('[args...]', 'remote command and arguments'); // expecting zero or more arguments
program.action((args, options) => {
console.log(args);
});
Or you could suppress the error, useful for minimising changes in legacy code.
program.option('-p, --port', 'port number');
program.allowExcessArguments();
program.action((options) => {
console.log(program.args);
});