npm-version
修改包版本Table of contents
概要
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.json
、package-lock.json
和 npm-shrinkwrap.json
(如果存在)。
newversion
参数应该是有效的 semver 字符串、semver.inc 的有效第二个参数(patch
、minor
、major
、prepatch
、preminor
、premajor
、prerelease
之一)或 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 patchYou need a passphrase to unlock the secret key foruser: "isaacs (http://blog.izs.me/) <i@izs.me>"2048-bit RSA key, ID 6C481CF6, created 2010-08-31Enter passphrase:
如果 preversion
、version
或 postversion
在 package.json 的 scripts
属性中,它们将作为运行 npm version
的一部分执行。
具体执行顺序如下:
- 在我们开始之前检查以确保 git 工作目录是干净的。
你的脚本可能会在以后的步骤中将文件添加到提交中。
如果设置了
--force
标志,则跳过此步骤。 - 运行
preversion
脚本。 这些脚本可以访问 package.json 中的旧version
。 一个典型的用途是在部署之前运行你的完整测试套件。 你要添加到提交中的任何文件都应使用git add
显式添加。 - 根据要求(
patch
、minor
、major
等)在package.json
中撞击version
。 - 运行
version
脚本。 这些脚本可以访问 package.json 中的新version
(例如,它们可以将其合并到生成文件的文件头中)。 同样,脚本应该使用git add
显式地将生成的文件添加到提交中。 - 提交并标记。
- 运行
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 密钥才能正常工作。