Handle name conflict for --version option #713
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary:
Fixes #711
The global
--version
option wouldn't print anything. That's because the nameversion
conflicts with the built-in commander methodcommander.version()
. Therefore, when callingcommander.version
, it wouldn't understand that it should use our --version option.Here's an issue on
commander
that explains the same issue: tj/commander.js#1020I have fixed this by checking if the raw arguments contain the
--version
argument. Even though sub-commands likeinit
has a different--version
parameter, this check is safe because of the existing check oncommander.args.length === 0
. The global--version
option will only be used if no sub-command is used.Test Plan:
Before applying the changes, I ran
node packages/cli --version
and saw that it printed nothing.After applying the changes, I ran the same command and saw that it returned the version stated in package.json.