前端
PythonJava运维数据库
npm
npm
  • npm version
  • JS模块化
  • package.json
  • npm 缓存
由 GitBook 提供支持
在本页
  • 描述
  • prerelease
  • prepatch & patch
  • preminor && minor
  • premajor & major

这有帮助吗?

npm version

npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease | from-git]

描述

在包目录中运行此命令以更新版本并将新数据写回 package.json。

newversion 参数应该是一个有效的 semver 字符串,semver 的第二个有效参数。Inc (patch、minor、major、prepatch、preminor、premajor、prerelease 之一)或 from-git。在第二种情况下,指定字段中的现有版本将增加 1。From-git 将尝试读取最新的 git 标签,并将其用作新的 NPM 版本。

如果在 git 仓库中运行,它还会创建一个版本提交和标签。此行为由 git-tag-version 控制(见下文),可以在命令行中通过运行 npm --no-git-tag-version version 来禁用。如果工作目录不干净,它将失败,除非设置了 -f 或--force 标志。

如果提供了-m或--message 选项,npm 将在创建版本提交时使用它作为提交消息。如果消息配置包含%s,那么它将被结果版本号替换。例如:

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

如果设置了sign-git-tag配置,那么标签将使用-s标志对git进行签名。注意,你必须在 git 配置中设置一个默认的 GPG 密钥才能正常工作。例如:

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

具体的执行顺序如下:

  1. 在我们开始之前,请检查以确保 git 工作目录是干净的。您的脚本可能会在后续步骤中将文件添加到提交中。如果设置了 --force 标志,则会跳过此步骤。

  2. 运行 preversion 脚本。这些脚本可以访问 package.json 中的旧版本。典型的用法是在部署之前运行完整的测试程序。

  3. 按照要求在 package.json 中更新版本(补丁版、次版本、主版本等)。

  4. 运行 version 脚本。这些脚本可以访问 package.json 中的新版本(例如,他们可以将其合并到生成文件的文件头中)。脚本应该使用 git add 显式地将生成的文件添加到提交中。

  5. 进行 Git 提交和打标签。

  6. 运行 postversion 脚本。使用它来清理文件系统或自动推送提交或tag。

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

prerelease

升级予发布版本号,如果上一个版本号没有预发布版本号,则下一个自动添加发布版本号(从 0 开始)。

npm version prerelease
# 3.0.0 => 3.0.1-0 => 3.0.1-1 => 3.0.1-2

prepatch & patch

  • prepatch:升级补丁版本号,如果上一个版本号没有预发布版本号,则下一个自动添加发布版本号(从 0 开始)。同时也会自动升级补丁版本号。

  • patch:升级补丁版本号,如果上一个版本号有预发布版本号,则去掉预发布版本号。如果没有预发布版本号,则直接升级。

npm version prepatch
# 3.0.0 => 3.0.1-0 => 3.0.2-0 => 3.0.3-0
# 3.0.0-* => 3.0.1-0 => 3.0.2-0 => 3.0.3-0


npm version patch
# 3.0.0-* => 3.0.0 => 3.0.1 => 3.0.2
# 3.0.0 => 3.0.1 => 3.0.2

preminor && minor

  • preminor:直接升级小版本号,补丁和予发布置为 0。

  • minor:直接升级小版本号,余置为 0。去掉预发布版本号。

npm version preminor
# 3.0.*-* => 3.1.0-0 => 3.2.0-0 => 3.3.0-0
# 3.0.0 => 3.1.0-0 => 3.2.0-0 => 3.3.0-0

npm version minor
# 3.0.0-*  => 3.0.0
# 3.0.*-*  => 3.1.0

premajor & major

  • premajor:直接升级大版本号,其余置为 0。

  • major:直接升级大版本号,其余置为 0。去掉预发布版本号。

npm version premajor
# 3.0.2-0 –> 4.0.0-0

npm version major
# 1.0.3 -> 2.0.0
下一页JS模块化

最后更新于9个月前

这有帮助吗?