# npm version
查看版本
# 概要
npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease | from-git]
alias: verison
# 描述
在包目录中运行此命令进行升级版本,并将新数据写回 package.json
、package-lock.json
和 npn-shrinkwrap.json
(如果存在)。
newversion
参数应该是一个有效 semver 字符串,server.inc
的有效第二参数( patch
,minor
,major
,prepatch
,preminor
,premajor
,prerelease
中的其中一个),或 from-git
。在第二种情况下,现有版本将在指定字段中增加 1。 从 git 将尝试读取最新的 from-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:
如果 package.json
的 scrpits 属性中包含 preversion
、version
或 postversion
在 scripts,则它们将作为运行 npm version
的一部分执行。
具体的执行顺序如下:
- 开始之前,请检查以确保 git 工作目录是干净的。脚本可能会在以后的步骤中将文件添加到提交中。如果设置了
--force
标志,则跳过此步骤。 - 运行
preversion
脚本。这些脚本可以访问package.json
中的旧脚本。典型的用法是在部署之前运行完整的测试套件。要添加到提交中的任何文件都应使用git add
显示添加。 - 根据请求在
package.json
中添加Bump
版本(patch
,minor
,major
等)。 - 运行版本脚本。这些脚本可以访问
package.json
中的新版本(例如,它们可以将其合并到生成文件的文件头中)。同样,脚本应该使用git add
显式地将生成地文件添加到提交中、 - 提交并标记。
- 运行
postversion
脚本。使用它来清理文件系统或自动推送提交 and/or 标签。
以下面的例子为例:
{
"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
- Default: false
- Type: Boolean
防止在 npm version
用于将新版本设置为与当前版本相同的值时抛出错误。
# commit-hooks
- Default: true
- Type: Boolean
使用 npm version
命令时运行 git commit hooks。
# git-tag-version
- Default: true
- Type: Boolean
使用 npm version
命令时标记提交。
# json
- Default: false
- Type: Boolean
是否输出 JSON 数据,而不是正常输出。
npm pkg set
支持使用 JSON.parse() 解析集合值,然后保存到你的package.json
。
并非所有 npm 命令都支持。
# preid
- Default: ""
- Type: String
用作 semver 的 pewewlease
部分的前缀的 prerelease identifier
,就像 rc
在 1.2.0-rc.8
。
# sign-git-tag
- Default: false
- Type: Boolean
如果设置为 true
,则 npm version
命令将使用 -s
添加签名来标记版本。
注意,git 需要你在你的 git 配置中设置 GPG 密钥才能正常工作。
# workspace
- Default:
- Type: String (可以设置多次)
启用在当前项目的已配置工作区的上下文中运行命令,同时通过仅运行此配置选项定义的工作区进行过滤。
workspace
配置的有效值如下:
- 工作区名称
- 工作区目录的路径
- 父工作区目录的路径(将导致选择该文件夹中的所有工作区)
为 npm init
命令设置时,可以将其设置为尚不存在的工作空间的文件夹,以创建文件夹并将其设置为项目中的全新工作空间。
此值不会导出到子进程的环境中。
# workspaces
- Default: null
- Type: null or Boolean
设置为 true 将在所有配置的工作区中运行该命令。
显式地将此设置为 false 将导致如下命令 install
完全忽略工作空间。当没有显式设置时:
- 在
node_modules
树上操作的命令 (install, update, etc.) 时,将把工作区链接到node_modules
文件夹中。做其他事情的命令 (test, exec, publish, etc.) 将在根项目上操作,除非在workspace
配置中指定了一个或多个工作空间。
此值不会导出到子进程的环境中。
# workspaces-update
- Default: true
- Type: Boolean
如果设置为true, npm cli 将在可能更改安装到 node_modules
文件夹的工作空间的操作之后运行更新。
# include-workspace-root
- Default: false
- Type: Boolean
当为某个命令启用工作区时,请包含工作区根目录。
当为 false 时,通过 workspace
配置指定单个工作空间,或通过 workspaces
标志指定所有工作空间,将导致 npm 仅在指定的工作空间上运行,而不是在根项目上运行。
此值不会导出到子进程的环境中。
← npm update npm view →