npm-version

修改包版本

概要

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

描述

在包目录中运行此命令以提升版本并将新数据写回 package.jsonpackage-lock.jsonnpm-shrinkwrap.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 配置选项,npm 将在创建版本提交时将其用作提交消息。 如果 message 配置包含 %s 那么它将被替换为生成的版本号。 例如:

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

如果设置了 sign-git-tag 配置,那么标签将使用 -s 标志对 git 进行签名。 请注意,你必须在 git 配置中设置默认 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/) <i@izs.me>"
2048-bit RSA key, ID 6C481CF6, created 2010-08-31
Enter passphrase:

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

具体执行顺序如下:

  1. 在我们开始之前检查以确保 git 工作目录是干净的。 你的脚本可能会在以后的步骤中将文件添加到提交中。 如果设置了 --force 标志,则跳过此步骤。
  2. 运行 preversion 脚本。 这些脚本可以访问 package.json 中的旧 version。 一个典型的用途是在部署之前运行你的完整测试套件。 你要添加到提交中的任何文件都应使用 git add 显式添加。
  3. 根据要求(patchminormajor 等)在 package.json 中撞击 version
  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 目录。

配置

allow-same-version

  • 默认值: false
  • 类型: 布尔值

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

git-tag-version

  • 默认值: true
  • 类型: 布尔值

提交并标记版本更改。

commit-hooks

  • 默认值: true
  • 类型: 布尔值

提交版本更改时运行 git commit hooks。

sign-git-tag

  • 默认值: false
  • 类型: 布尔值

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

请注意,你必须在 git 配置中设置默认 GPG 密钥才能正常工作。

也可以看看

npm 中文网 - 粤ICP备13048890号