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