npm-version Bump a package version

SYNOPSIS

npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease [--preid=<prerelease-id>] | from-git]

'npm [-v | --version]' to print npm version
'npm view <pkg> version' to view a package's published version
'npm ls' to inspect current package/dependency versions

DESCRIPTION

在程序包目录中运行此命令以更改版本,然后将新数据写回到package.jsonpackage-lock.jsonnpm-shrinkwrap.json package-lock.json (如果存在).

newversion参数应该是一个有效的semver字符串,一个有效的第二个参数semver.inc (一个patchminormajorprepatchpreminorpremajorprerelease ),或from-git . 在第二种情况下,现有版本将在指定字段中增加1. from-git将尝试读取最新的git标记,并将其用作新的npm版本.

如果在git repo中运行,它还将创建版本提交和标记. 此行为由git-tag-version (请参见下文),可以通过运行npm --no-git-tag-version version在命令行上禁用. 如果工作目录不干净,它将失败,除非设置了-f--force标志.

如果提供了-m--message config选项,则npm在创建版本提交时会将其用作提交消息. 如果message配置中包含%s ,则将其替换为结果版本号. 例如:

npm version patch -m "Upgrade to %s for reasons"

如果设置了sign-git-tag配置,那么将使用-s标志对git对该标签进行签名. 请注意,您必须在git config中设置一个默认的GPG密钥,以使其正常工作. 例如:

$ npm config set sign-git-tag true
$ npm version patch

You need a passphrase to unlock the secret key for
user: "isaacs (http://blog.izs.me/) <[email protected]>"
2048-bit RSA key, ID 6C481CF6, created 2010-08-31

Enter passphrase:

如果package.json的scripts属性中包含preversionversionpostversion ,则它们将作为运行npm version一部分执行.

确切的执行顺序如下:

  1. 在开始之前,请检查以确保git工作目录是干净的. 您的脚本可能会在以后的步骤中将文件添加到提交中. 如果设置了--force标志,则跳过此步骤.
  2. 运行preversion脚本. 这些脚本可以访问package.json中的旧version . 典型的用途是在部署之前运行完整的测试套件. 您要添加到提交中的所有文件都应使用git add显式git add .
  3. 根据要求在package.json推送versionpatchminormajor等).
  4. 运行version脚本. 这些脚本可以访问package.json中的新version (例如,它们可以将其合并到生成的文件的文件头中). 同样,脚本应使用git add将生成的文件显式添加到提交中.
  5. 提交并标记.
  6. 运行后postversion脚本. 用它来清理文件系统或自动推送提交和/或标记.

请看以下示例:

"scripts": {
  "preversion": "npm test",
  "version": "npm run build && git add -A dist",
  "postversion": "git push && git push --tags && rm -rf build/temp"
}

这将运行您的所有测试,并且只有在通过测试后才能继续进行. 然后运行您的build脚本,并将dist目录中的所有内容添加到提交中. 提交后,它将新的提交和标记推送到服务器,并删除build/temp目录.

CONFIGURATION

allow-same-version

当使用npm version将新版本设置为与当前版本相同的值时,防止引发错误.

git-tag-version

提交并标记版本更改.

commit-hooks

提交版本更改时,请运行git commit挂钩.

sign-git-tag

-s标志传递给git以对标签进行签名.

请注意,您必须在git config中设置一个默认的GPG密钥,以使其正常工作.

SEE ALSO


by  ICOPY.SITE