npm 版本 version

2021-10-29 10:52 更新

升級包版本

概要

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

描述

在包目錄中運行此命令進行升級版本,并將新數(shù)據(jù)寫回 package.jsonpackage-lock.jsonnpn-shrinkwrap.json(如果存在)。

newversion參數(shù)應(yīng)該是一個有效semver字符串,server.inc 的有效第二參數(shù)(patchminor,major,?prepatch,preminorpremajor,prerelease中的其中一個),或來自 git。在第二種情況下,現(xiàn)有版本將在指定字段中增加 1。?從 git 將嘗試讀取最新的 git 標記,并將其用作新的 npm 版本。

如果在 git repo 中運行,它還會創(chuàng)建一個版本提交和標記。此行為由 git-tag-version(見下文)控制,并且可以通過運行在命令行上禁用npm --no-git-tag-version version。如果工作目錄不干凈,它將失敗,除非設(shè)置了 -for?--force 標志。

如果提供了-m--message 配置選項,npm 將在創(chuàng)建版本提交時將其用作提交消息。如果?message 配置包含%s,那么它將被替換為結(jié)果版本號。例如:

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

如果設(shè)置了 sign-git-tag 配置,那么將使用-sgit 標簽對標記進行簽名。請注意,你必須在 git 配置中設(shè)置默認 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、versionpostversionscripts,則它們將作為運行 npm version 的一部分執(zhí)行。

具體的執(zhí)行順序如下:

  1. 開始之前,請檢查以確保 git 工作目錄是干凈的。腳本可能會在以后的步驟中將文件添加到提交中。如果設(shè)置了--force標志,則跳過此步驟。
  2. 運行 preversion 腳本。這些腳本可以訪問 package.json 中的舊腳本。典型的用法是在部署之前運行完整的測試套件。要添加到提交中的任何文件都應(yīng)使用git add 顯示添加。
  3. 根據(jù)請求在package.json中添加 Bump 版本(patchminor,major等)。
  4. 運行版本腳本。這些腳本可以訪問 package.json 中的新版本(例如,它們可以將其合并到生成文件的文件頭中)。同樣,腳本應(yīng)該使用git add顯式地將生成地文件添加到提交中、
  5. 提交并標記。
  6. 運行postversion腳本。使用它來清理文件系統(tǒng)或自動推送提交和/或標簽。

以下面的例子為例:

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

這將運行你的所有測試,并且只有在它們通過時才會繼續(xù)。然后運行你的build腳本,并將dist目錄中的所有內(nèi)容添加到提交中。提交后,它將新提交和標簽推送到服務(wù)器,并刪除build/temp目錄。

配置

allow-same-version 允許相同版本

  • 默認值:false
  • 類型:Boolean

防止在npm version用于將新版本設(shè)置為與當前版本相同的值時拋出錯誤。

commit-hooks 提交鉤子

  • 默認值:true
  • 類型:Boolean

使用 npm version 命令時運行 git commit hooks。

git-tag-version git標記版本

  • 默認值:true
  • 類型:Boolean

使用 npm version 命令時標記提交。

json

  • 默認值:true
  • 類型:Boolean

是否輸出 JSON 數(shù)據(jù),而不是正常輸出。

  • npm pkg set 允許將設(shè)置值保存到 package.json。

并非所有 npm 命令都支持。

preid

  • 默認:""
  • 類型:String

用作 semver 的pewewlease部分的前綴的prerelease identifier,就像 rc1.2.0-rc.8。

sign-git-tag 簽到git標記

  • 默認值:false
  • 類型:Boolean

如果設(shè)置為true,則 npm version 命令將使用 -s 添加簽名來標記版本。

請注意,git 要求你在 git 配置中設(shè)置 GPG 密鑰才能正常工作。

workspace 工作區(qū)

  • 默認值:
  • 類型:String(可多次設(shè)置)

允許在當前項目的一配置工作區(qū)的上下文中運行命令,同時通過僅運行此配置選項定義的工作區(qū)進行過濾。

workspace配置的有效值為:

  • 工作區(qū)名稱
  • 工作區(qū)目錄的路徑
  • 父工作區(qū)目錄的路徑(將導致選擇所有嵌套工作區(qū))

為該 npm init 命令設(shè)置時,可以將其設(shè)置為尚不存在的工作區(qū)的文件,以創(chuàng)建該文件夾并將其設(shè)置為項目中的全新工作區(qū)。

此值不會到處到子進程的環(huán)境中。

workspaces 工作區(qū)

  • 默認值:false
  • 類型:Boolean

啟用在所有已配置工作區(qū)的上下文中運行命令。

此值不會導出到子進程的環(huán)境中。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號