網站導覽
目錄
npm-pkg
選擇 CLI 版本
目錄
概要
npm pkg set <key>=<value> [<key>=<value> ...]npm pkg get [<key> [<key> ...]]npm pkg delete <key> [<key> ...]npm pkg set [<array>[<index>].<key>=<value> ...]npm pkg set [<array>[].<key>=<value> ...]npm pkg fix
說明
自動化管理 package.json
檔案的指令。 npm pkg
提供 3 個不同的子指令,讓您修改或擷取 package.json
中特定物件金鑰的值。
擷取和設定欄位的語法是您在 package.json
中找到的巢狀物件屬性的點分隔表示法,這與 npm view
中用於從登錄清單擷取資訊的表示法相同,以下提供更多如何使用的範例。
傳回的值總是採用json 格式。
-
npm pkg get <field>
擷取
package.json
檔案中定義的值key
。例如,若要擷取目前套件的名稱,您可以執行
npm pkg get name也可以同時擷取多個值
npm pkg get name version你可以透過句點分隔來檢視子欄位。若要擷取測試
script
值,你可以執行以下指令npm pkg get scripts.test對於陣列欄位,要求非數字欄位將傳回清單中物件的所有值。例如,若要取得套件的所有貢獻者電子郵件,你可以執行
npm pkg get contributors.email你也可以在方括號中使用數字索引來特別選取陣列欄位中的項目。若要取得清單中第一個貢獻者的電子郵件地址,你可以執行
npm pkg get contributors[0].email對於複雜欄位,你也可以在方括號中指定一個屬性來特別選取子欄位。這對於 exports 物件特別有幫助
npm pkg get "exports[.].require" -
npm pkg set <field>=<value>
根據
field
值在你的package.json
中設定value
。儲存到你的package.json
檔案時,會使用與npm install
和其他觸及package.json
檔案的 cli 指令相同的規則,確保尊重現有的縮排,並在將值儲存到檔案之前套用一些驗證。用於從套件中擷取值的相同語法也可以用於定義新屬性或覆寫現有屬性,以下是使用句點分隔語法編輯
package.json
檔案的一些範例。在你的
package.json
中定義一個名為mynewcommand
的新 bin,指向檔案cli.js
npm pkg set bin.mynewcommand=cli.js一次設定多個欄位也是可行的
npm pkg set description='Awesome package' engines.node='>=10'也可以新增到陣列值,例如新增一個新的貢獻者項目
npm pkg set contributors[0].name='Foo' contributors[0].email='foo@bar.ca'你也可以使用特殊空方括號表示法將項目附加到陣列的結尾
npm pkg set contributors[].name='Foo' contributors[].name='Bar'也可以在將值儲存到
package.json
檔案之前將其解析為 json,例如為了設定"private": true
屬性npm pkg set private=true --json它也允許將值儲存為數字
npm pkg set tap.timeout=60 --json -
npm pkg delete <key>
從你的
package.json
中刪除一個key
用於從套件設定值的相同語法也可以用於移除現有的值。例如,若要移除一個名為 build 的 script
npm pkg delete scripts.build -
npm pkg fix
自動修正
package.json
中的常見錯誤。npm 已在publish
期間執行此操作,這會導致package.json
檔案內容與 npm 在安裝期間使用的清單產生細微(大多無害)的差異。
工作區支援
你可以使用 workspace
或 workspaces
設定選項,在已設定的工作空間中設定/取得/刪除項目。
例如,在專案的所有已設定工作空間中設定 funding
值
npm pkg set funding=https://example.com --ws
使用 npm pkg get
從已設定的工作空間中擷取資訊時,傳回的結果會採用 json 格式,其中頂層金鑰為每個工作空間的名稱,這些金鑰的值會是從每個已設定工作空間傳回的結果值,例如
npm pkg get name version --ws{"a": {"name": "a","version": "1.0.0"},"b": {"name": "b","version": "1.0.0"}}
設定
force
- 預設值:false
- 類型:布林值
移除各種針對不幸的副作用、常見錯誤、不必要的效能降低和惡意輸入的防護措施。
- 允許在全域安裝中覆寫非 npm 檔案。
- 允許
npm version
命令在不乾淨的 git 儲存庫上執行。 - 允許使用
npm cache clean
刪除快取資料夾。 - 允許安裝具有
engines
宣告(需要不同版本的 npm)的套件。 - 允許安裝具有
engines
宣告(需要不同版本的node
)的套件,即使已啟用--engine-strict
。 - 允許
npm audit fix
安裝超出你所述依賴範圍(包括 SemVer-major 變更)的模組。 - 允許取消發佈已發佈套件的所有版本。
- 允許在根專案中安裝衝突的 peerDependencies。
- 在
npm init
期間隱含設定--yes
。 - 允許在
npm pkg
中覆寫現有值 - 允許取消發佈整個套件(不只單一版本)。
如果你對自己想做的事沒有明確的想法,強烈建議你不要使用這個選項!
json
- 預設值:false
- 類型:布林值
是否輸出 JSON 資料,而不是一般輸出。
- 在
npm pkg set
中,它會在將設定值儲存到package.json
之前,使用 JSON.parse() 來解析設定值。
並非所有 npm 指令都支援。
workspace
- 預設
- 類型:字串(可設定多次)
在當前專案的已設定工作區環境中執行指令,同時根據此設定選項所定義的工作區進行篩選。
workspace
設定的有效值包括
- 工作區名稱
- 工作區目錄路徑
- 父工作區目錄路徑(將選取該資料夾中的所有工作區)
設定給 npm init
指令時,可設定為尚未存在的工作區資料夾,以建立資料夾並將其設定為專案中的全新工作區。
此值不會匯出至子程式的環境。
workspaces
- 預設:null
- 類型:null 或布林值
設定為 true 以在所有已設定工作區的環境中執行指令。
明確設定為 false 會導致 install
等指令完全忽略工作區。未明確設定時
- 針對
node_modules
樹狀結構進行操作的指令(install、update 等)會將工作區連結到node_modules
資料夾中。- 執行其他操作的指令(test、exec、publish 等)會在根目錄專案中進行操作,除非在workspace
設定中指定一個或多個工作區。
此值不會匯出至子程式的環境。