目錄
npm-version
選擇 CLI 版本
目錄
概要
npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease | from-git]alias: verison
組態
allow-same-version
- 預設:false
- 類型:布林值
當 npm version
用於將新版本設定為與目前版本相同的值時,避免擲回錯誤。
commit-hooks
- 預設:true
- 類型:布林值
使用 npm version
指令時,執行 git commit 掛勾。
git-tag-version
- 預設:true
- 類型:布林值
使用 npm version
指令時,標記 commit。將此設定為 false 會導致完全不進行 commit。
json
- 預設:false
- 類型:布林值
輸出 JSON 資料,而不是一般輸出。
- 在
npm pkg set
中,它會在將設定值儲存到package.json
之前,使用 JSON.parse() 來解析設定值。
並非所有 npm 指令都支援。
preid
- 預設:""
- 類型:字串
用作 semver「pre-release」部分前綴的「pre-release 識別碼」。類似於 1.2.0-rc.8
中的 rc
。
sign-git-tag
- 預設:false
- 類型:布林值
如果設定為 true,則 npm version
指令會使用 -s
標記版本,以新增簽章。
請注意,git 要求您在 git 設定中設定 GPG 金鑰,才能正常運作。
workspace
- 預設
- 類型:字串(可設定多次)
在當前專案設定的工作空間中執行指令,同時透過僅執行此設定選項所定義的工作空間來過濾。
workspace
設定的有效值為
- 工作空間名稱
- 工作空間目錄路徑
- 父工作空間目錄路徑(將選取該資料夾中的所有工作空間)
設定為 npm init
指令時,可以設定為尚未存在的資料夾,以建立資料夾並將其設定為專案中的全新工作空間。
此值不會匯出到子程序的環境。
workspaces
- 預設:null
- 類型:null 或布林
設為 true 以在所有已設定工作區的內容中執行指令。
明確將此設為 false 將導致 install
等指令完全忽略工作區。未明確設定時
- 對
node_modules
樹狀結構進行操作的指令(安裝、更新等)會將工作區連結到node_modules
資料夾。- 對其他項目進行操作的指令(測試、執行、發布等)會在根目錄專案上執行,除非在workspace
設定中指定一個或多個工作區。
此值不會匯出到子程序的環境。
workspaces-update
- 預設:true
- 類型:布林值
如果設為 true,npm cli 會在可能將已安裝工作區變更到 node_modules
資料夾的操作後執行更新。
include-workspace-root
- 預設:false
- 類型:布林值
在為指令啟用工作區時,包含工作區根目錄。
如果為 false,則透過 workspace
設定指定個別工作區,或透過 workspaces
旗標指定所有工作區,會導致 npm 僅對指定的工作區執行操作,而不是根目錄專案。
此值不會匯出到子程序的環境。
說明
在套件目錄中執行此動作,以升級版本並將新資料寫回 package.json
、package-lock.json
,以及(如果存在)npm-shrinkwrap.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 會在建立版本提交時將其用作提交訊息。如果 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 patchYou need a passphrase to unlock the secret key foruser: "isaacs (http://blog.izs.me/) <i@izs.me>"2048-bit RSA key, ID 6C481CF6, created 2010-08-31Enter passphrase:
如果 preversion
、version
或 postversion
出現在 package.json 的 scripts
屬性中,它們將會在執行 npm version
時執行。
執行順序如下:
- 在開始前檢查 git 工作目錄是否乾淨。您的腳本可能會在後續步驟中將檔案新增到提交中。如果設定
--force
旗標,則會略過此步驟。 - 執行
preversion
腳本。這些腳本可以存取 package.json 中的舊version
。常見的用途是在部署前執行完整的測試套件。您想要新增到提交中的任何檔案都應該使用git add
明確新增。 - 根據要求變更
package.json
中的version
(patch
、minor
、major
等)。 - 執行
version
腳本。這些腳本可以存取 package.json 中的新version
(例如,它們可以將其納入產生的檔案中的檔案標頭)。同樣地,腳本應該使用git add
明確將產生的檔案新增到提交中。 - 提交並加上標籤。
- 執行
postversion
腳本。使用它來清除檔案系統或自動推送提交和/或標籤。
以下範例:
{"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
目錄。