npm-version

概要

npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease | 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中写入新的版本,当然若存在npm-shrinkwrap.json,也会更新。

参数描述

newversion是给包直接指定有效的semver版本号,例如1.0.1。

# package.json中定义的当前版本1.0.0
> npm version 1.0.3
v1.0.3

patch,minor,major, prepatch,preminor,premajor,prerelease,from-git等将会基于现有版本加1。

# package.json中定义的当前版本1.0.0
> npm version patch 
v1.0.1

Git标签

如果你在一个 Git仓库内运行 npm version,一个 Git 标签 默认会被以 v0.0.0 格式创建。

> git init # 创建仓库

> npm version patch
v1.0.1

> git tag
v1.0.1

你可以使用 --no-git-tag-version 或 git-tag-version,完全启用或禁用 git 打标签行为:

> npm --no-git-tag-version version patch
v1.0.1

> npm config set git-tag-version false

> git tag # 查看是否禁用了git打标签

可以用 -message 或 -m 修改 git 版本消息(%s 指版本号字符串)。

> npm version patch -m "Upgrade to %s for reasons"
v1.0.1

> git show v1.0.1 # 可查看message内容

您也可以使用 sign-git-tag 开关 git 标签签名:

> npm config set sign-git-tag true

version脚本命令的作用

运行npm version,将会自动执行scripts下定义的version脚本命令,以及version的pre和post钩子。这些脚本命令可以发挥很重要的作用。例如:

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

简单解释下,运行preversion脚本,将运行所有测试,并且只有在它们通过时才会继续。然后运行version脚本,运行build脚本,并将dist目录中的所有内容添加到提交中。提交后,运行postversion脚本,它将新提交和标记推送到服务器,并删除该build/temp目录。

配置

allow-same-version
  • Default: false
  • Type: Boolean

用于若将新版本设置为与当前相同的版本时,防止发生错误。

# 当前版本1.0.0
> npm version --allow-same-version 1.0.0
v1.0.0

results matching ""

    No results matching ""