in apps/rush-lib/src/cli/actions/PublishAction.ts [70:211]
protected onDefineParameters(): void {
this._apply = this.defineFlagParameter({
parameterLongName: '--apply',
parameterShortName: '-a',
description: 'If this flag is specified, the change requests will be applied to package.json files.'
});
this._targetBranch = this.defineStringParameter({
parameterLongName: '--target-branch',
parameterShortName: '-b',
argumentName: 'BRANCH',
description:
'If this flag is specified, applied changes and deleted change requests will be ' +
'committed and merged into the target branch.'
});
this._publish = this.defineFlagParameter({
parameterLongName: '--publish',
parameterShortName: '-p',
description: 'If this flag is specified, applied changes will be published to the NPM registry.'
});
this._addCommitDetails = this.defineFlagParameter({
parameterLongName: '--add-commit-details',
parameterShortName: undefined,
description: 'Adds commit author and hash to the changelog.json files for each change.'
});
this._regenerateChangelogs = this.defineFlagParameter({
parameterLongName: '--regenerate-changelogs',
parameterShortName: undefined,
description: 'Regenerates all changelog files based on the current JSON content.'
});
// NPM registry related parameters
this._registryUrl = this.defineStringParameter({
parameterLongName: '--registry',
parameterShortName: '-r',
argumentName: 'REGISTRY',
description:
`Publishes to a specified NPM registry. If this is specified, it will prevent the current commit will not be ` +
'tagged.'
});
this._npmAuthToken = this.defineStringParameter({
parameterLongName: '--npm-auth-token',
parameterShortName: '-n',
argumentName: 'TOKEN',
description:
'(DEPRECATED) Specifies the authentication token to use during publishing. This parameter is deprecated' +
' because command line parameters may be readable by unrelated processes on a lab machine. Instead, a' +
' safer practice is to pass the token via an environment variable and reference it from your ' +
' common/config/rush/.npmrc-publish file.'
});
this._npmTag = this.defineStringParameter({
parameterLongName: '--tag',
parameterShortName: '-t',
argumentName: 'TAG',
description:
`The tag option to pass to npm publish. By default NPM will publish using the 'latest' tag, even if ` +
`the package is older than the current latest, so in publishing workflows for older releases, providing ` +
`a tag is important. When hotfix changes are made, this parameter defaults to 'hotfix'.`
});
this._npmAccessLevel = this.defineChoiceParameter({
alternatives: ['public', 'restricted'],
parameterLongName: '--set-access-level',
parameterShortName: undefined,
description:
`By default, when Rush invokes "npm publish" it will publish scoped packages with an access level ` +
`of "restricted". Scoped packages can be published with an access level of "public" by specifying ` +
`that value for this flag with the initial publication. NPM always publishes unscoped packages with ` +
`an access level of "public". For more information, see the NPM documentation for the "--access" ` +
`option of "npm publish".`
});
// NPM pack tarball related parameters
this._pack = this.defineFlagParameter({
parameterLongName: '--pack',
description:
`Packs projects into tarballs instead of publishing to npm repository. It can only be used when ` +
`--include-all is specified. If this flag is specified, NPM registry related parameters will be ignored.`
});
this._releaseFolder = this.defineStringParameter({
parameterLongName: '--release-folder',
argumentName: 'FOLDER',
description:
`This parameter is used with --pack parameter to provide customized location for the tarballs instead of ` +
`the default value. `
});
// End of NPM pack tarball related parameters
this._includeAll = this.defineFlagParameter({
parameterLongName: '--include-all',
parameterShortName: undefined,
description:
'If this flag is specified, all packages with shouldPublish=true in rush.json ' +
'or with a specified version policy ' +
'will be published if their version is newer than published version.'
});
this._versionPolicy = this.defineStringParameter({
parameterLongName: '--version-policy',
argumentName: 'POLICY',
description:
'Version policy name. Only projects with this version policy will be published if used ' +
'with --include-all.'
});
this._prereleaseName = this.defineStringParameter({
parameterLongName: '--prerelease-name',
argumentName: 'NAME',
description:
'Bump up to a prerelease version with the provided prerelease name. Cannot be used with --suffix'
});
this._partialPrerelease = this.defineFlagParameter({
parameterLongName: '--partial-prerelease',
parameterShortName: undefined,
description:
'Used with --prerelease-name. Only bump packages to a prerelease version if they have changes.'
});
this._suffix = this.defineStringParameter({
parameterLongName: '--suffix',
argumentName: 'SUFFIX',
description: 'Append a suffix to all changed versions. Cannot be used with --prerelease-name.'
});
this._force = this.defineFlagParameter({
parameterLongName: '--force',
parameterShortName: undefined,
description: 'If this flag is specified with --publish, packages will be published with --force on npm'
});
this._applyGitTagsOnPack = this.defineFlagParameter({
parameterLongName: '--apply-git-tags-on-pack',
description:
`If specified with --publish and --pack, git tags will be applied for packages` +
` as if a publish was being run without --pack.`
});
this._commitId = this.defineStringParameter({
parameterLongName: '--commit',
parameterShortName: '-c',
argumentName: 'COMMIT_ID',
description:
`Used in conjunction with git tagging -- apply git tags at the commit hash` +
` specified. If not provided, the current HEAD will be tagged.`
});
this._ignoreGitHooksParameter = this.defineFlagParameter({
parameterLongName: '--ignore-git-hooks',
description: `Skips execution of all git hooks. Make sure you know what you are skipping.`
});
}