Spaces:
Sleeping
Sleeping
| # Changelog | |
| All notable changes to this project will be documented in this file. | |
| The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) | |
| and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). (Format adopted after v3.0.0.) | |
| <!-- markdownlint-disable MD024 --> | |
| ## [4.1.1] (2020-02-02) | |
| ### Fixed | |
| * TypeScript definition for `.action()` should include Promise for async ([#1157]) | |
| ## [4.1.0] (2020-01-06) | |
| ### Added | |
| * two routines to change how option values are handled, and eliminate name clashes with command properties ([#933] [#1102]) | |
| * see storeOptionsAsProperties and passCommandToAction in README | |
| * `.parseAsync` to use instead of `.parse` if supply async action handlers ([#806] [#1118]) | |
| ### Fixed | |
| * Remove trailing blanks from wrapped help text ([#1096]) | |
| ### Changed | |
| * update dependencies | |
| * extend security coverage for Commander 2.x to 2020-02-03 | |
| * improvements to README | |
| * improvements to TypeScript definition documentation | |
| * move old versions out of main CHANGELOG | |
| * removed explicit use of `ts-node` in tests | |
| ## [4.0.1] (2019-11-12) | |
| ### Fixed | |
| * display help when requested, even if there are missing required options ([#1091]) | |
| ## [4.0.0] (2019-11-02) | |
| ### Added | |
| * automatically wrap and indent help descriptions for options and commands ([#1051]) | |
| * `.exitOverride()` allows override of calls to `process.exit` for additional error handling and to keep program running ([#1040]) | |
| * support for declaring required options with `.requiredOptions()` ([#1071]) | |
| * GitHub Actions support ([#1027]) | |
| * translation links in README | |
| ### Changed | |
| * dev: switch tests from Sinon+Should to Jest with major rewrite of tests ([#1035]) | |
| * call default subcommand even when there are unknown options ([#1047]) | |
| * *Breaking* Commander is only officially supported on Node 8 and above, and requires Node 6 ([#1053]) | |
| ### Fixed | |
| * *Breaking* keep command object out of program.args when action handler called ([#1048]) | |
| * also, action handler now passed array of unknown arguments | |
| * complain about unknown options when program argument supplied and action handler ([#1049]) | |
| * this changes parameters to `command:*` event to include unknown arguments | |
| * removed deprecated `customFds` option from call to `child_process.spawn` ([#1052]) | |
| * rework TypeScript declarations to bring all types into imported namespace ([#1081]) | |
| ### Migration Tips | |
| #### Testing for no arguments | |
| If you were previously using code like: | |
| ```js | |
| if (!program.args.length) ... | |
| ``` | |
| a partial replacement is: | |
| ```js | |
| if (program.rawArgs.length < 3) ... | |
| ``` | |
| ## [4.0.0-1] Prerelease (2019-10-08) | |
| (Released in 4.0.0) | |
| ## [4.0.0-0] Prerelease (2019-10-01) | |
| (Released in 4.0.0) | |
| ## [2.20.1] (2019-09-29) | |
| ### Fixed | |
| * Improve tracking of executable subcommands. | |
| ### Changed | |
| * update development dependencies | |
| ## [3.0.2] (2019-09-27) | |
| ### Fixed | |
| * Improve tracking of executable subcommands. | |
| ### Changed | |
| * update development dependencies | |
| ## [3.0.1] (2019-08-30) | |
| ### Added | |
| * .name and .usage to README ([#1010]) | |
| * Table of Contents to README ([#1010]) | |
| * TypeScript definition for `executableFile` in CommandOptions ([#1028]) | |
| ### Changed | |
| * consistently use `const` rather than `var` in README ([#1026]) | |
| ### Fixed | |
| * help for sub commands with custom executableFile ([#1018]) | |
| ## [3.0.0] / 2019-08-08 | |
| * Add option to specify executable file name ([#999]) | |
| * e.g. `.command('clone', 'clone description', { executableFile: 'myClone' })` | |
| * Change docs for `.command` to contrast action handler vs git-style executable. ([#938] [#990]) | |
| * **Breaking** Change TypeScript to use overloaded function for `.command`. ([#938] [#990]) | |
| * Change to use straight quotes around strings in error messages (like 'this' instead of `this') ([#915]) | |
| * Add TypeScript "reference types" for node ([#974]) | |
| * Add support for hyphen as an option argument in subcommands ([#697]) | |
| * Add support for a short option flag and its value to be concatenated for action handler subcommands ([#599]) | |
| * e.g. `-p 80` can also be supplied as `-p80` | |
| * Add executable arguments to spawn in win32, for git-style executables ([#611]) | |
| * e.g. `node --harmony myCommand.js clone` | |
| * Add parent command as prefix of subcommand in help ([#980]) | |
| * Add optional custom description to `.version` ([#963]) | |
| * e.g. `program.version('0.0.1', '-v, --vers', 'output the current version')` | |
| * Add `.helpOption(flags, description)` routine to customise help flags and description ([#963]) | |
| * e.g. `.helpOption('-e, --HELP', 'read more information')` | |
| * Fix behavior of --no-* options ([#795]) | |
| * can now define both `--foo` and `--no-foo` | |
| * **Breaking** custom event listeners: `--no-foo` on cli now emits `option:no-foo` (previously `option:foo`) | |
| * **Breaking** default value: defining `--no-foo` after defining `--foo` leaves the default value unchanged (previously set it to false) | |
| * allow boolean default value, such as from environment ([#987]) | |
| * Increment inspector port for spawned subcommands ([#991]) | |
| * e.g. `node --inspect myCommand.js clone` | |
| ### Migration Tips | |
| The custom event for a negated option like `--no-foo` is `option:no-foo` (previously `option:foo`). | |
| ```js | |
| program | |
| .option('--no-foo') | |
| .on('option:no-foo', () => { | |
| console.log('removing foo'); | |
| }); | |
| ``` | |
| When using TypeScript, adding a command does not allow an explicit `undefined` for an unwanted executable description (e.g | |
| for a command with an action handler). | |
| ```js | |
| program | |
| .command('action1', undefined, { noHelp: true }) // No longer valid | |
| .command('action2', { noHelp: true }) // Correct | |
| ``` | |
| ## 3.0.0-0 Prerelease / 2019-07-28 | |
| (Released as 3.0.0) | |
| ## 2.20.0 / 2019-04-02 | |
| * fix: resolve symbolic links completely when hunting for subcommands (#935) | |
| * Update index.d.ts (#930) | |
| * Update Readme.md (#924) | |
| * Remove --save option as it isn't required anymore (#918) | |
| * Add link to the license file (#900) | |
| * Added example of receiving args from options (#858) | |
| * Added missing semicolon (#882) | |
| * Add extension to .eslintrc (#876) | |
| ## 2.19.0 / 2018-10-02 | |
| * Removed newline after Options and Commands headers (#864) | |
| * Bugfix - Error output (#862) | |
| * Fix to change default value to string (#856) | |
| ## 2.18.0 / 2018-09-07 | |
| * Standardize help output (#853) | |
| * chmod 644 travis.yml (#851) | |
| * add support for execute typescript subcommand via ts-node (#849) | |
| ## 2.17.1 / 2018-08-07 | |
| * Fix bug in command emit (#844) | |
| ## 2.17.0 / 2018-08-03 | |
| * fixed newline output after help information (#833) | |
| * Fix to emit the action even without command (#778) | |
| * npm update (#823) | |
| ## 2.16.0 / 2018-06-29 | |
| * Remove Makefile and `test/run` (#821) | |
| * Make 'npm test' run on Windows (#820) | |
| * Add badge to display install size (#807) | |
| * chore: cache node_modules (#814) | |
| * chore: remove Node.js 4 (EOL), add Node.js 10 (#813) | |
| * fixed typo in readme (#812) | |
| * Fix types (#804) | |
| * Update eslint to resolve vulnerabilities in lodash (#799) | |
| * updated readme with custom event listeners. (#791) | |
| * fix tests (#794) | |
| ## 2.15.0 / 2018-03-07 | |
| * Update downloads badge to point to graph of downloads over time instead of duplicating link to npm | |
| * Arguments description | |
| ## 2.14.1 / 2018-02-07 | |
| * Fix typing of help function | |
| ## 2.14.0 / 2018-02-05 | |
| * only register the option:version event once | |
| * Fixes issue #727: Passing empty string for option on command is set to undefined | |
| * enable eqeqeq rule | |
| * resolves #754 add linter configuration to project | |
| * resolves #560 respect custom name for version option | |
| * document how to override the version flag | |
| * document using options per command | |
| ## 2.13.0 / 2018-01-09 | |
| * Do not print default for --no- | |
| * remove trailing spaces in command help | |
| * Update CI's Node.js to LTS and latest version | |
| * typedefs: Command and Option types added to commander namespace | |
| ## 2.12.2 / 2017-11-28 | |
| * fix: typings are not shipped | |
| ## 2.12.1 / 2017-11-23 | |
| * Move @types/node to dev dependency | |
| ## 2.12.0 / 2017-11-22 | |
| * add attributeName() method to Option objects | |
| * Documentation updated for options with --no prefix | |
| * typings: `outputHelp` takes a string as the first parameter | |
| * typings: use overloads | |
| * feat(typings): update to match js api | |
| * Print default value in option help | |
| * Fix translation error | |
| * Fail when using same command and alias (#491) | |
| * feat(typings): add help callback | |
| * fix bug when description is add after command with options (#662) | |
| * Format js code | |
| * Rename History.md to CHANGELOG.md (#668) | |
| * feat(typings): add typings to support TypeScript (#646) | |
| * use current node | |
| ## 2.11.0 / 2017-07-03 | |
| * Fix help section order and padding (#652) | |
| * feature: support for signals to subcommands (#632) | |
| * Fixed #37, --help should not display first (#447) | |
| * Fix translation errors. (#570) | |
| * Add package-lock.json | |
| * Remove engines | |
| * Upgrade package version | |
| * Prefix events to prevent conflicts between commands and options (#494) | |
| * Removing dependency on graceful-readlink | |
| * Support setting name in #name function and make it chainable | |
| * Add .vscode directory to .gitignore (Visual Studio Code metadata) | |
| * Updated link to ruby commander in readme files | |
| ## 2.10.0 / 2017-06-19 | |
| * Update .travis.yml. drop support for older node.js versions. | |
| * Fix require arguments in README.md | |
| * On SemVer you do not start from 0.0.1 | |
| * Add missing semi colon in readme | |
| * Add save param to npm install | |
| * node v6 travis test | |
| * Update Readme_zh-CN.md | |
| * Allow literal '--' to be passed-through as an argument | |
| * Test subcommand alias help | |
| * link build badge to master branch | |
| * Support the alias of Git style sub-command | |
| * added keyword commander for better search result on npm | |
| * Fix Sub-Subcommands | |
| * test node.js stable | |
| * Fixes TypeError when a command has an option called `--description` | |
| * Update README.md to make it beginner friendly and elaborate on the difference between angled and square brackets. | |
| * Add chinese Readme file | |
| ## 2.9.0 / 2015-10-13 | |
| * Add option `isDefault` to set default subcommand #415 @Qix- | |
| * Add callback to allow filtering or post-processing of help text #434 @djulien | |
| * Fix `undefined` text in help information close #414 #416 @zhiyelee | |
| ## 2.8.1 / 2015-04-22 | |
| * Back out `support multiline description` Close #396 #397 | |
| ## 2.8.0 / 2015-04-07 | |
| * Add `process.execArg` support, execution args like `--harmony` will be passed to sub-commands #387 @DigitalIO @zhiyelee | |
| * Fix bug in Git-style sub-commands #372 @zhiyelee | |
| * Allow commands to be hidden from help #383 @tonylukasavage | |
| * When git-style sub-commands are in use, yet none are called, display help #382 @claylo | |
| * Add ability to specify arguments syntax for top-level command #258 @rrthomas | |
| * Support multiline descriptions #208 @zxqfox | |
| ## 2.7.1 / 2015-03-11 | |
| * Revert #347 (fix collisions when option and first arg have same name) which causes a bug in #367. | |
| ## 2.7.0 / 2015-03-09 | |
| * Fix git-style bug when installed globally. Close #335 #349 @zhiyelee | |
| * Fix collisions when option and first arg have same name. Close #346 #347 @tonylukasavage | |
| * Add support for camelCase on `opts()`. Close #353 @nkzawa | |
| * Add node.js 0.12 and io.js to travis.yml | |
| * Allow RegEx options. #337 @palanik | |
| * Fixes exit code when sub-command failing. Close #260 #332 @pirelenito | |
| * git-style `bin` files in $PATH make sense. Close #196 #327 @zhiyelee | |
| ## 2.6.0 / 2014-12-30 | |
| * added `Command#allowUnknownOption` method. Close #138 #318 @doozr @zhiyelee | |
| * Add application description to the help msg. Close #112 @dalssoft | |
| ## 2.5.1 / 2014-12-15 | |
| * fixed two bugs incurred by variadic arguments. Close #291 @Quentin01 #302 @zhiyelee | |
| ## 2.5.0 / 2014-10-24 | |
| * add support for variadic arguments. Closes #277 @whitlockjc | |
| ## 2.4.0 / 2014-10-17 | |
| * fixed a bug on executing the coercion function of subcommands option. Closes #270 | |
| * added `Command.prototype.name` to retrieve command name. Closes #264 #266 @tonylukasavage | |
| * added `Command.prototype.opts` to retrieve all the options as a simple object of key-value pairs. Closes #262 @tonylukasavage | |
| * fixed a bug on subcommand name. Closes #248 @jonathandelgado | |
| * fixed function normalize doesn’t honor option terminator. Closes #216 @abbr | |
| ## 2.3.0 / 2014-07-16 | |
| * add command alias'. Closes PR #210 | |
| * fix: Typos. Closes #99 | |
| * fix: Unused fs module. Closes #217 | |
| ## 2.2.0 / 2014-03-29 | |
| * add passing of previous option value | |
| * fix: support subcommands on windows. Closes #142 | |
| * Now the defaultValue passed as the second argument of the coercion function. | |
| ## 2.1.0 / 2013-11-21 | |
| * add: allow cflag style option params, unit test, fixes #174 | |
| ## 2.0.0 / 2013-07-18 | |
| * remove input methods (.prompt, .confirm, etc) | |
| ## Older versions | |
| * [1.x](./changelogs/CHANGELOG-1.md) | |
| * [0.x](./changelogs/CHANGELOG-0.md) | |
| [#599]: https://github.com/tj/commander.js/issues/599 | |
| [#611]: https://github.com/tj/commander.js/issues/611 | |
| [#697]: https://github.com/tj/commander.js/issues/697 | |
| [#795]: https://github.com/tj/commander.js/issues/795 | |
| [#806]: https://github.com/tj/commander.js/issues/806 | |
| [#915]: https://github.com/tj/commander.js/issues/915 | |
| [#938]: https://github.com/tj/commander.js/issues/938 | |
| [#963]: https://github.com/tj/commander.js/issues/963 | |
| [#974]: https://github.com/tj/commander.js/issues/974 | |
| [#980]: https://github.com/tj/commander.js/issues/980 | |
| [#987]: https://github.com/tj/commander.js/issues/987 | |
| [#990]: https://github.com/tj/commander.js/issues/990 | |
| [#991]: https://github.com/tj/commander.js/issues/991 | |
| [#993]: https://github.com/tj/commander.js/issues/993 | |
| [#999]: https://github.com/tj/commander.js/issues/999 | |
| [#1010]: https://github.com/tj/commander.js/pull/1010 | |
| [#1018]: https://github.com/tj/commander.js/pull/1018 | |
| [#1026]: https://github.com/tj/commander.js/pull/1026 | |
| [#1027]: https://github.com/tj/commander.js/pull/1027 | |
| [#1028]: https://github.com/tj/commander.js/pull/1028 | |
| [#1035]: https://github.com/tj/commander.js/pull/1035 | |
| [#1040]: https://github.com/tj/commander.js/pull/1040 | |
| [#1047]: https://github.com/tj/commander.js/pull/1047 | |
| [#1048]: https://github.com/tj/commander.js/pull/1048 | |
| [#1049]: https://github.com/tj/commander.js/pull/1049 | |
| [#1051]: https://github.com/tj/commander.js/pull/1051 | |
| [#1052]: https://github.com/tj/commander.js/pull/1052 | |
| [#1053]: https://github.com/tj/commander.js/pull/1053 | |
| [#1071]: https://github.com/tj/commander.js/pull/1071 | |
| [#1081]: https://github.com/tj/commander.js/pull/1081 | |
| [#1091]: https://github.com/tj/commander.js/pull/1091 | |
| [#1096]: https://github.com/tj/commander.js/pull/1096 | |
| [#1102]: https://github.com/tj/commander.js/pull/1102 | |
| [#1118]: https://github.com/tj/commander.js/pull/1118 | |
| [#1157]: https://github.com/tj/commander.js/pull/1157 | |
| [Unreleased]: https://github.com/tj/commander.js/compare/master...develop | |
| [4.1.1]: https://github.com/tj/commander.js/compare/v4.0.0..v4.1.1 | |
| [4.1.0]: https://github.com/tj/commander.js/compare/v4.0.1..v4.1.0 | |
| [4.0.1]: https://github.com/tj/commander.js/compare/v4.0.0..v4.0.1 | |
| [4.0.0]: https://github.com/tj/commander.js/compare/v3.0.2..v4.0.0 | |
| [4.0.0-1]: https://github.com/tj/commander.js/compare/v4.0.0-0..v4.0.0-1 | |
| [4.0.0-0]: https://github.com/tj/commander.js/compare/v3.0.2...v4.0.0-0 | |
| [3.0.2]: https://github.com/tj/commander.js/compare/v3.0.1...v3.0.2 | |
| [3.0.1]: https://github.com/tj/commander.js/compare/v3.0.0...v3.0.1 | |
| [3.0.0]: https://github.com/tj/commander.js/compare/v2.20.1...v3.0.0 | |
| [2.20.1]: https://github.com/tj/commander.js/compare/v2.20.0...v2.20.1 | |