目錄

設定

關於 npm 設定,你可能比想像中更想了解

選擇 CLI 版本

目錄

說明

本文詳細說明一般 npm 設定。如要了解 config 指令,請參閱 npm config

npm 從以下來源取得其組態值,依優先順序排序

命令列旗標

在命令列上放置 --foo bar 會將 foo 組態參數設定為 "bar"-- 參數會指示 cli 剖析器停止讀取旗標。使用 --flag 而未指定任何值會將值設定為 true

範例:--flag1 --flag2 會將兩個組態參數都設定為 true,而 --flag1 --flag2 bar 會將 flag1 設定為 true,而將 flag2 設定為 bar。最後,--flag1 --flag2 -- bar 會將兩個組態參數都設定為 true,而 bar 則視為命令參數。

環境變數

任何以 npm_config_ 開頭的環境變數都將被詮釋為組態參數。例如,在您的環境中放置 npm_config_foo=bar 會將 foo 組態參數設定為 bar。任何未給定值的環境組態都將給定 true 的值。組態值不區分大小寫,因此 NPM_CONFIG_FOO=bar 會產生相同的效果。不過,請注意在 scripts 內部,npm 會設定其自己的環境變數,而 Node 會優先採用這些小寫版本,而非您可能設定的任何大寫版本。有關詳細資訊,請參閱 此問題

請注意,您需要使用底線而非破折號,因此 --allow-same-version 會變成 npm_config_allow_same_version=true

npmrc 檔案

四個相關檔案為

  • 專案設定檔 (/path/to/my/project/.npmrc)
  • 使用者設定檔 (預設為 $HOME/.npmrc;可透過 CLI 選項 --userconfig 或環境變數 $NPM_CONFIG_USERCONFIG 設定)
  • 全域設定檔 (預設為 $PREFIX/etc/npmrc;可透過 CLI 選項 --globalconfig 或環境變數 $NPM_CONFIG_GLOBALCONFIG 設定)
  • npm 內建設定檔 (/path/to/npm/npmrc)

更多詳細資訊,請參閱 npmrc

預設組態

執行 npm config ls -l 以查看 npm 內部的一組設定參數,如果未指定其他內容,這些參數為預設值。

簡寫和其他 CLI 細節

命令列會分析下列簡寫

  • -a: --all
  • --enjoy-by: --before
  • -c: --call
  • --desc: --description
  • -f: --force
  • -g: --global
  • --iwr: --include-workspace-root
  • -L: --location
  • -d: --loglevel info
  • -s: --loglevel silent
  • --silent: --loglevel silent
  • --ddd: --loglevel silly
  • --dd: --loglevel verbose
  • --verbose: --loglevel verbose
  • -q: --loglevel warn
  • --quiet--loglevel warn
  • -l--long
  • -m--message
  • --local--no-global
  • -n--no-yes
  • --no--no-yes
  • -p--parseable
  • --porcelain--parseable
  • -C--prefix
  • --readonly--read-only
  • --reg--registry
  • -S--save
  • -B--save-bundle
  • -D--save-dev
  • -E--save-exact
  • -O--save-optional
  • -P--save-prod
  • -?--usage
  • -h--usage
  • -H--usage
  • --help--usage
  • -v--version
  • -w--workspace
  • --ws--workspaces
  • -y--yes

如果指定的組態參數明確解析為已知的組態參數,則會擴充為該組態參數。例如

npm ls --par
# same as:
npm ls --parseable

如果將多個單字元簡寫字串串在一起,且產生的組合明確不是其他組態參數,則會擴充為其各種組成部分。例如

npm ls -gpld
# same as:
npm ls --global --parseable --long --loglevel info

組態設定

_auth

  • 預設值:null
  • 類型:null 或字串

在對 npm 登錄進行驗證時要使用的基本驗證字串。這將僅用於對 npm 登錄進行驗證。對於其他登錄,您需要像「//other-registry.tld/:_auth」一樣設定範圍。

警告:通常不應透過命令列選項設定此選項。較安全的做法是執行 npm login,以使用儲存在 ~/.npmrc 檔案中的登入憑證。

access

  • 預設值:新套件為「public」,現有套件則不變更目前的層級
  • 類型:null、「restricted」或「public」

如果您不希望您的範圍套件可公開檢視(且可安裝),請設定 --access=restricted

無法將非範圍套件設定為 restricted

注意:對於現有套件,預設值是不變更目前的存取層級。在發布期間指定 restrictedpublic 的值,將變更現有套件的存取權,方式與 npm access set status 相同。

all

  • 預設值:false
  • 類型:布林值

在執行 npm outdatednpm ls 時,設定 --all 將顯示所有過期或已安裝的套件,而不會只顯示目前專案直接依賴的套件。

allow-same-version

  • 預設值:false
  • 類型:布林值

防止在使用 npm version 將新版本設定為與目前版本相同的值時擲回錯誤。

audit

  • 預設值:true
  • 類型:布林值

若為「true」,會將稽核報告與目前的 npm 指令一起提交至預設登錄檔和所有為範圍設定的登錄檔。請參閱 npm audit 的文件,以取得關於提交內容的詳細資訊。

audit-level

  • 預設值:null
  • 類型:null、「info」、「low」、「moderate」、「high」、「critical」或「none」

npm audit 以非零結束代碼結束的弱點最低層級。

auth-type

  • 預設值:web
  • 類型:legacy 或 web

login 一起使用的驗證策略。請注意,如果提供了 otp 設定,此值將永遠設定為 legacy

before

  • 預設值:null
  • 類型:null 或日期

如果傳遞給 npm install,將重建 npm 樹狀結構,以便僅安裝在 --before 時間或之前可用的版本。如果沒有目前直接依賴項目的可用版本,指令將會傳回錯誤。

如果要求的版本是 dist-tag,且提供的標籤未通過 --before 篩選,將使用小於或等於該標籤的最新版本。例如,foo@latest 可能會安裝 foo@1.2,即使 latest2.0

  • 預設值:true
  • 類型:布林值

指示 npm 為套件可執行檔建立符號連結(或 Windows 上的 .cmd shim)。

設為 false 以停用此功能。這可用於解決某些檔案系統不支援符號連結的問題,即使在表面上是 Unix 系統。

browser

  • 預設值:OS X:"open",Windows:"start",其他:"xdg-open"
  • 類型:null、布林值或字串

npm 指令呼叫的瀏覽器,用於開啟網站。

設為 false 以抑制瀏覽器行為,並改為將網址列印至終端機。

設為 true 以使用預設系統 URL 開啟器。

ca

  • 預設值:null
  • 類型:null 或字串(可設定多次)

用於註冊表 SSL 連線的受信任憑證頒發機構簽署憑證。值應為 PEM 格式(Windows 稱之為「Base-64 編碼的 X.509 (.CER)」,其中換行符號以字串「\n」取代。例如

ca="-----BEGIN CERTIFICATE-----\nXXXX\nXXXX\n-----END CERTIFICATE-----"

設為 null 以僅允許「已知」註冊表,或設為特定 CA 憑證以僅信任該特定簽署機構。

可透過指定憑證陣列來信任多個 CA

ca[]="..."
ca[]="..."

另請參閱 strict-ssl 設定。

cache

  • 預設值:Windows:%LocalAppData%\npm-cache,Posix:~/.npm
  • 類型:路徑

npm 快取目錄的位置。

cafile

  • 預設值:null
  • 類型:路徑

指向包含一個或多個憑證頒發機構簽署憑證的檔案的路徑。類似於 ca 設定,但允許多個 CA,以及將 CA 資訊儲存在磁碟上的檔案中。

call

  • 預設值:""
  • 類型:字串

npm exec、npx 的選用伴隨選項,允許指定要與已安裝套件一起執行的自訂指令。

npm exec --package yo --package generator-node --call "yo node"

cidr

  • 預設值:null
  • 類型:null 或字串(可設定多次)

這是 CIDR 位址清單,用於在使用 npm token create 指令設定有限存取權杖時。

color

  • 預設值:true,除非 NO_COLOR 環境變數設為「0」以外的值
  • 類型:「always」或布林值

如果為 false,則永遠不顯示色彩。如果為 "always",則永遠顯示色彩。如果為 true,則僅為 tty 檔案描述符列印色彩碼。

commit-hooks

  • 預設值:true
  • 類型:布林值

使用 npm version 指令時執行 git commit hook。

cpu

  • 預設值:null
  • 類型:null 或字串

覆寫原生模組的 CPU 架構以進行安裝。可接受的值與 package.json 的 cpu 欄位相同,其來自 process.arch

depth

  • 預設值:如果設定 --all,則為 Infinity,否則為 1
  • 類型:null 或數字

在遞迴套件時,npm ls 的深度。

如果未設定,npm ls 將只顯示根專案的直接相依性。如果設定 --all,npm 將預設顯示所有相依性。

description

  • 預設值:true
  • 類型:布林值

npm search 中顯示說明

diff

  • 預設值
  • 類型:字串(可設定多次)

定義在 npm diff 中比較參數。

diff-dst-prefix

  • 預設值:b/
  • 類型:字串

npm diff 輸出中使用的目的地前綴。

diff-ignore-all-space

  • 預設值:false
  • 類型:布林值

npm diff 中比較列時,忽略空白。

diff-name-only

  • 預設值:false
  • 類型:布林值

使用 npm diff 時,只列印檔名。

diff-no-prefix

  • 預設值:false
  • 類型:布林值

npm diff 輸出中,不顯示任何來源或目的地前綴。

注意:這會導致 npm diff 忽略 --diff-src-prefix--diff-dst-prefix 設定。

diff-src-prefix

  • 預設值:a/
  • 類型:字串

npm diff 輸出中使用的來源前綴。

diff-text

  • 預設值:false
  • 類型:布林值

npm diff 中將所有檔案視為文字。

diff-unified

  • 預設值:3
  • 類型:數字

npm diff 中列印的內容列數。

dry-run

  • 預設值:false
  • 類型:布林值

表示您不希望 npm 進行任何變更,且它只應報告它會執行的動作。這可以傳遞給任何修改您本地安裝的指令,例如 installupdatededupeuninstall,以及 packpublish

注意:其他與網路相關的指令不會遵循這項設定,例如 dist-tagsowner 等。

editor

  • 預設值:EDITOR 或 VISUAL 環境變數,或 Windows 上的 '%SYSTEMROOT%\notepad.exe',或 Unix 系統上的 'vi'
  • 類型:字串

npm editnpm config edit 執行的指令。

engine-strict

  • 預設值:false
  • 類型:布林值

如果設為 true,則 npm 將頑固地拒絕安裝(或甚至考慮安裝)任何宣稱與目前的 Node.js 版本不相容的套件。

這可以用設定 --force 旗標來覆寫。

expect-result-count

  • 預設值:null
  • 類型:null 或數字

告訴預期指令會產生特定數量的結果。

此設定無法與 expect-results 一起使用

expect-results

  • 預設值:null
  • 類型:null 或布林

告訴 npm 是否預期指令會產生結果。可以是 true(預期一些結果)或 false(不預期任何結果)。

此設定無法與 expect-result-count 一起使用

fetch-retries

  • 預設:2
  • 類型:數字

從註冊表中擷取套件時,retry 模組的「retries」設定。

在網路故障或 5xx HTTP 錯誤的情況下,npm 會重試對註冊表的冪等讀取請求。

fetch-retry-factor

  • 預設:10
  • 類型:數字

擷取套件時,retry 模組的「factor」設定。

fetch-retry-maxtimeout

  • 預設:60000(1 分鐘)
  • 類型:數字

擷取套件時,retry 模組的「maxTimeout」設定。

fetch-retry-mintimeout

  • 預設:10000(10 秒)
  • 類型:數字

擷取套件時,retry 模組的「minTimeout」設定。

fetch-timeout

  • 預設:300000(5 分鐘)
  • 類型:數字

等待 HTTP 請求完成的最長時間。

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 中覆寫現有值
  • 允許取消發佈整個套件(不只單一版本)。

如果您對想要執行的動作沒有明確的想法,強烈建議您不要使用此選項!

foreground-scripts

  • 預設值:false,除非使用 npm packnpm publish,預設值為 true
  • 類型:布林值

執行已安裝套件的前置處理程序的所有建置腳本(即 preinstallinstallpostinstall),並與主 npm 處理程序共用標準輸入、輸出和錯誤。

請注意,這通常會讓安裝執行得更慢,而且會更吵,但對於除錯很有用。

format-package-lock

  • 預設值:true
  • 類型:布林值

package-lock.jsonnpm-shrinkwrap.json 格式化為人類可讀取的檔案。

fund

  • 預設值:true
  • 類型:布林值

當為「true」時,會在每次 npm install 結束時顯示訊息,確認正在尋找資金的相依項數量。請參閱 npm fund 以取得詳細資料。

git

  • 預設值:git
  • 類型:字串

用於 git 指令的指令。如果電腦已安裝 git,但不在 PATH 中,請將此設定為 git 二進位檔的完整路徑。

git-tag-version

  • 預設值:true
  • 類型:布林值

使用 npm version 指令時標記提交。將此設定為 false 會導致完全不提交。

global

  • 預設值:false
  • 類型:布林值

以「全域」模式操作,以便將套件安裝到 prefix 資料夾,而不是目前的作業目錄。請參閱 資料夾 以進一步了解行為差異。

  • 套件安裝到 {prefix}/lib/node_modules 資料夾,而不是目前的作業目錄。
  • bin 檔案連結到 {prefix}/bin
  • man 頁面連結到 {prefix}/share/man

globalconfig

  • 預設值:全域 --prefix 設定加上 'etc/npmrc'。例如,'/usr/local/etc/npmrc'
  • 類型:路徑

讀取全域設定選項的設定檔。

heading

  • 預設值:npm
  • 類型:字串

開始所有偵錯記錄輸出的字串。

https-proxy

  • 預設值:null
  • 類型:null 或 URL

用於傳送 https 要求的代理。如果設定 HTTPS_PROXYhttps_proxyHTTP_PROXYhttp_proxy 環境變數,底層 make-fetch-happen 函式庫將會遵循代理設定。

if-present

  • 預設值:false
  • 類型:布林值

如果為 true,當 run-script 呼叫 package.jsonscripts 區段中未定義的指令碼時,npm 將不會以錯誤碼結束。當需要在指令碼存在時選擇性執行指令碼,並在指令碼失敗時失敗時,可以使用此選項。例如,在執行可能僅適用於其他一般 CI 設定中某些建置的指令碼時,這項功能會很有用。

此值不會匯出到子程式的環境。

ignore-scripts

  • 預設值:false
  • 類型:布林值

如果為 true,npm 就不會執行 package.json 檔案中指定的指令碼。

請注意,明確用於執行特定指令碼的指令,例如 npm startnpm stopnpm restartnpm testnpm run-script,如果設定 ignore-scripts,仍會執行其預期的指令碼,但它們不會執行任何前置或後置指令碼。

include

  • 預設值
  • 類型:「prod」、「dev」、「optional」或「peer」(可以設定多次)

允許定義要安裝的相依性類型的選項。

這是 --omit=<type> 的反向操作。

--include 中指定的相依性類型將不會被省略,無論在命令列中指定省略/包含的順序為何。

include-staged

  • 預設值:false
  • 類型:布林值

允許安裝「分階段」發布的套件,如 npm RFC PR #92 所定義。

這是實驗性的,且未由 npm 公共登錄實作。

include-workspace-root

  • 預設值:false
  • 類型:布林值

在為指令啟用工作區時,包含工作區根目錄。

如果為 false,則透過 workspace 設定指定個別工作區,或透過 workspaces 旗標指定所有工作區,將導致 npm 僅在指定的工作區上執行,而不是在根目錄專案上執行。

此值不會匯出到子程式的環境。

init-author-email

  • 預設值:""
  • 類型:字串

預設 npm init 應使用的套件作者電子郵件值。

init-author-name

  • 預設值:""
  • 類型:字串

預設 npm init 應使用的套件作者名稱值。

init-author-url

  • 預設值:""
  • 類型:"" 或 URL

預設應由 npm init 使用套件作者首頁的值。

init-license

  • 預設值:"ISC"
  • 類型:字串

預設應由 npm init 使用套件授權的值。

init-module

  • 預設值: "~/.npm-init.js"
  • 類型:路徑

將由 npm init 指令載入的模組。請參閱 init-package-json 模組的文件以取得更多資訊,或 npm init

init-version

  • 預設值:"1.0.0"
  • 類型:SemVer 字串

如果尚未在 package.json 中設定,npm init 應預設使用的套件版本號碼值。

  • 預設值:false
  • 類型:布林值

設定時,file:協定相依性會打包並安裝為一般相依性,而非建立符號連結。此選項對工作區沒有影響。

install-strategy

  • 預設值:"hoisted"
  • 類型:"hoisted"、"nested"、"shallow" 或 "linked"

設定在 node_modules 中安裝套件的策略。hoisted(預設):在頂層安裝非重複項,並在目錄結構中視需要安裝重複項。nested:(以前為 --legacy-bundling) 就地安裝,不提升。shallow(以前為 --global-style)僅在頂層安裝直接相依性。linked:(實驗性質) 安裝在 node_modules/.store 中,就地連結,未提升。

json

  • 預設值:false
  • 類型:布林值

輸出 JSON 資料,而非一般輸出。

  • npm pkg set 中,它會在將設定值儲存至 package.json 之前,使用 JSON.parse() 來解析。

並非所有 npm 指令都支援。

legacy-peer-deps

  • 預設值:false
  • 類型:布林值

導致 npm 在建立套件樹時完全忽略 peerDependencies,如同在 npm 3 到 6 的版本中。

如果無法安裝套件,因為過於嚴格的 peerDependencies 發生衝突,它提供一種解決情況的方法。

這與 --omit=peer 不同,因為 --omit=peer 會避免在磁碟上解壓縮 peerDependencies,但仍會設計一個樹狀結構,使 peerDependencies 可以 在正確的位置解壓縮。

不建議使用 legacy-peer-deps,因為它不會強制執行元依賴項可能依賴的 peerDependencies 合約。

libc

  • 預設值:null
  • 類型:null 或字串

覆寫要安裝的原生模組的 libc。可接受的值與 package.json 的 libc 欄位相同。

  • 預設值:false
  • 類型:布林值

npm ls 搭配使用,將輸出限制為僅連結的套件。

local-address

  • 預設值:null
  • 類型:IP 位址

與 npm 登錄檔建立連線時,要使用的本機介面的 IP 位址。在 0.12 之前的 Node 版本中,必須是 IPv4。

location

  • 預設值:user,除非傳遞 --global,這也會將此值設定為 global
  • 類型:globaluserproject

傳遞給 npm config 時,這表示要使用哪個設定檔。

設定為 global 模式時,套件會安裝到 prefix 資料夾,而不是目前的作業目錄。請參閱 資料夾,深入了解行為上的差異。

  • 套件安裝到 {prefix}/lib/node_modules 資料夾,而不是目前的作業目錄。
  • bin 檔案連結到 {prefix}/bin
  • man 頁面連結到 {prefix}/share/man

lockfile-version

  • 預設值:如果沒有鎖定檔,則為版本 3,自動將 v1 鎖定檔轉換為 v3,否則維持目前的鎖定檔版本。
  • 類型:null、1、2、3、123

設定要使用在 package-lock.json 和 npm-shrinkwrap-json 檔案中的鎖定檔格式版本。可能的選項為

1:npm 版本 5 和 6 使用的鎖定檔版本。缺少安裝期間使用的部分資料,導致安裝速度較慢且可能較不確定。與較舊的 npm 版本交互操作時,可防止鎖定檔變動。

2:npm 版本 7 和 8 使用的預設鎖定檔版本。包含版本 1 鎖定檔資料和版本 3 鎖定檔資料,以獲得最大的確定性和互操作性,但會犧牲磁碟上的空間。

3:僅 npm 版本 7 中引入的新鎖定檔資訊。比鎖定檔版本 2 在磁碟上佔用空間較小,但與較舊的 npm 版本不具互操作性。如果所有使用者都使用 npm 版本 7 以上,則為理想選擇。

loglevel

  • 預設值:notice
  • 類型:"silent"、"error"、"warn"、"notice"、"http"、"info"、"verbose" 或 "silly"

要報告的記錄等級。所有記錄都會寫入偵錯記錄,如果命令執行失敗,則會印出該檔案的路徑。

會顯示高於設定等級的任何記錄。預設為 "notice"。

另請參閱 foreground-scripts 設定。

logs-dir

  • 預設值:快取內名為 _logs 的目錄
  • 類型:null 或路徑

npm 記錄目錄的位置。請參閱 npm logging 以取得更多資訊。

logs-max

  • 預設:10
  • 類型:數字

要儲存的最大記錄檔數量。

如果設為 0,則不會為目前執行寫入任何記錄檔。

long

  • 預設值:false
  • 類型:布林值

lssearchhelp-search 中顯示進階資訊。

maxsockets

  • 預設值:15
  • 類型:數字

每個來源 (協定/主機/埠組合) 要使用的最大連線數。

message

  • 預設值:"%s"
  • 類型:字串

建立版本提交時,npm version 使用的提交訊息。

訊息中的任何 "%s" 都會取代為版本號碼。

node-options

  • 預設值:null
  • 類型:null 或字串

透過 NODE_OPTIONS 環境變數傳遞至 Node.js 的選項。這不會影響 npm 本身的執行方式,但會影響生命週期指令碼的呼叫方式。

noproxy

  • 預設值:NO_PROXY 環境變數的值
  • 類型:字串(可設定多次)

應該繞過任何代理伺服器的網域副檔名。

也接受以逗號分隔的字串。

offline

  • 預設值:false
  • 類型:布林值

強制離線模式:安裝期間不會執行任何網路要求。若要允許 CLI 填入遺失的快取資料,請參閱 --prefer-offline

omit

  • 預設值:如果 NODE_ENV 環境變數設為 'production',則為 'dev',否則為空。
  • 類型:"dev"、"optional" 或 "peer" (可設定多次)

從磁碟上的安裝樹中省略的相依性類型。

請注意,這些依賴項會解析並新增至 package-lock.jsonnpm-shrinkwrap.json 檔案。它們只是不會實體安裝在磁碟上。

如果套件類型同時出現在 --include--omit 清單中,則會將其包含在內。

如果產生的遺漏清單包含 'dev',則 NODE_ENV 環境變數會設定為 'production',以適用於所有生命週期指令碼。

omit-lockfile-registry-resolved

  • 預設值:false
  • 類型:布林值

此選項會導致 npm 建立鎖定檔案,而註冊表依賴項沒有 resolved 鍵。後續安裝需要使用已設定的註冊表解析 tarball 端點,可能會導致安裝時間較長。

os

  • 預設值:null
  • 類型:null 或字串

覆寫要安裝的原生模組作業系統。可接受的值與 package.json 的 os 欄位相同,該欄位來自 process.platform

otp

  • 預設值:null
  • 類型:null 或字串

這是來自雙重身分驗證器的單次密碼。在使用 npm access 發布或變更套件權限時需要此密碼。

如果未設定,且註冊表回應因單次密碼的挑戰而失敗,npm 會在命令列中提示輸入密碼。

封裝目的地

  • 預設值:"."
  • 類型:字串

目錄,npm pack 會將 tarball 儲存在其中。

封裝

  • 預設值
  • 類型:字串(可設定多次)

要為 npm exec 安裝的套件或套件組。

封裝鎖定

  • 預設值:true
  • 類型:布林值

如果設定為 false,則在安裝時忽略 package-lock.json 檔案。如果 save 為 true,這也會防止撰寫 package-lock.json

僅封裝鎖定

  • 預設值:false
  • 類型:布林值

如果設定為 true,目前的操作只會使用 package-lock.json,忽略 node_modules

對於 update,這表示只會更新 package-lock.json,而不是檢查 node_modules 並下載依賴項。

對於 list,這表示輸出會根據 package-lock.json 所描述的樹狀結構,而不是 node_modules 的內容。

可解析

  • 預設值:false
  • 類型:布林值

輸出可解析的結果,來自寫入標準輸出的指令碼。對於 npm search,這將會是 tab 分隔的表格格式。

偏好重複刪除

  • 預設值:false
  • 類型:布林值

如果可能,優先重複使用套件,而不是選擇依賴項較新的版本。

偏好離線

  • 預設值:false
  • 類型:布林值

如果為真,將略過快取資料的過期檢查,但會向伺服器要求遺失資料。若要強制完全離線模式,請使用 --offline

偏好線上

  • 預設值:false
  • 類型:布林值

如果為真,將強制快取資料的過期檢查,即使是最新套件資料,CLI 也會立即尋找更新。

前綴

  • 預設值:在全域模式下,為安裝 node 可執行檔的資料夾。否則,為包含 package.json 檔案或 node_modules 資料夾的最近父資料夾。
  • 類型:路徑

安裝全域項目的位置。如果在命令列上設定,則會強制非全域命令在指定的資料夾中執行。

預編號

  • 預設值:""
  • 類型:字串

用作 semver 的「前置版本識別碼」,作為「前置版本」部分的前置詞。例如 1.2.0-rc.8 中的 rc

進度

  • 預設值:true,除非在已知的 CI 系統中執行
  • 類型:布林值

設定為 true 時,如果 process.stderr 是 TTY,npm 會在耗時作業期間顯示進度條。

設定為 false 以抑制進度條。

來源

  • 預設值:false
  • 類型:布林值

從受支援的雲端 CI/CD 系統發布時,套件會公開連結到建置並發布的位置。

此設定無法與下列項目搭配使用:provenance-file

來源檔案

  • 預設值:null
  • 類型:路徑

發布時,將使用指定路徑中的來源套件。

此設定無法與下列項目搭配使用:provenance

代理

  • 預設值:null
  • 類型:null、false 或 URL

用於傳送 http 要求的代理伺服器。如果設定 HTTP_PROXYhttp_proxy 環境變數,底層 request 函式庫會遵守代理伺服器設定。

唯讀

  • 預設值:false
  • 類型:布林值

這用於將權杖標記為無法發布,同時使用 npm token create 命令設定受限存取權杖。

重建套件

  • 預設值:true
  • 類型:布林值

安裝後重建已套件化的相依性。

註冊

npm 註冊表的基礎 URL。

取代註冊主機

  • 預設值:npmjs
  • 類型:npmjs、never、always 或字串

定義在鎖定檔中使用設定的註冊表取代註冊表主機的行為。

預設行為是將套件 dist URL 從預設註冊表 (https://registry.npmjs.org) 替換為已設定的註冊表。如果設定為「never」,則使用註冊表值。如果設定為「always」,則每次都將註冊表主機替換為已設定的主機。

您也可以指定一個裸主機名稱(例如,「registry.npmjs.org」)。

儲存

  • 預設:true,除非使用 npm update,預設為 false
  • 類型:布林值

將已安裝的套件儲存到 package.json 檔案中,作為相依項。

npm rm 指令搭配使用時,會從 package.json 中移除相依項。

如果設定為 false,也會防止寫入 package-lock.json

儲存套件

  • 預設值:false
  • 類型:布林值

如果套件會在安裝時透過使用 --save--save-dev--save-optional 儲存,則也將其放入 bundleDependencies 清單中。

如果設定 --save-peer,則會略過,因為 peerDependencies 無法綑綁。

儲存開發

  • 預設值:false
  • 類型:布林值

將已安裝的套件儲存到 package.json 檔案中,作為 devDependencies

儲存精確

  • 預設值:false
  • 類型:布林值

儲存到 package.json 的相依項將設定為明確版本,而不是使用 npm 預設的 semver 範圍運算子。

儲存可選

  • 預設值:false
  • 類型:布林值

將已安裝的套件儲存到 package.json 檔案中,作為 optionalDependencies

儲存同儕

  • 預設值:false
  • 類型:布林值

將已安裝的套件儲存到 package.json 檔案中,作為 peerDependencies

儲存前綴

  • 預設:"^"
  • 類型:字串

設定透過 --save--save-dev 安裝到 package.json 檔案的套件版本的加註前綴方式。

例如,如果套件的版本為 1.2.3,預設情況下,其版本會設定為 ^1.2.3,允許對該套件進行次要升級,但在 npm config set save-prefix='~' 之後,它會設定為 ~1.2.3,僅允許修補程式升級。

儲存產品

  • 預設值:false
  • 類型:布林值

將已安裝的套件儲存到 dependencies 中。如果套件已存在於 devDependenciesoptionalDependencies 中,但您希望將其移至非必要的生產相依項,則這會很有用。

如果 --save 為 true,且 --save-dev--save-optional 皆為 false,則為預設行為。

SBOM 格式

  • 預設值:null
  • 類型:"cyclonedx" 或 "spdx"

產生 SBOM 時要使用的 SBOM 格式。

SBOM 類型

  • 預設值:"library"
  • 類型:"library"、"application" 或 "framework"

產生的 SBOM 所描述的套件類型。對於 SPDX,這是 primaryPackagePurpose 欄位的數值。對於 CycloneDX,這是 type 欄位的數值。

範圍

  • 預設值:目前專案的範圍(若有)或 ""
  • 類型:字串

將作業與範圍註冊表的範圍關聯起來。

在登入或登出私人註冊表時很有用

# log in, linking the scope to the custom registry
npm login --scope=@mycorp --registry=https://registry.mycorp.com
# log out, removing the link and the auth token
npm logout --scope=@mycorp

這將導致 @mycorp 對應到註冊表,以便未來根據 @mycorp/package 樣式指定的套件進行安裝。

這也會導致 npm init 建立一個範圍套件。

# accept all defaults, and create a package named "@foo/whatever",
# instead of just named "whatever"
npm init --scope=@foo --yes

指令殼

  • 預設值:POSIX 系統上的 '/bin/sh',Windows 上的 'cmd.exe'
  • 類型:null 或字串

使用 npm execnpm runnpm init <package-spec> 命令執行的指令碼要使用的 shell。

搜尋排除

  • 預設值:""
  • 類型:字串

以空白分隔的選項,用來限制搜尋結果。

搜尋限制

  • 預設值:20
  • 類型:數字

將搜尋結果限制為多少個項目。完全不適用於舊版搜尋。

搜尋選項

  • 預設值:""
  • 類型:字串

以空白分隔的選項,總是傳遞到搜尋。

搜尋過期

  • 預設值:900
  • 類型:數字

使用舊版搜尋端點時,快取的年齡(以秒為單位),在發出另一個註冊表要求之前。

  • 預設值:SHELL 環境變數,或 Posix 上的 "bash",或 Windows 上的 "cmd.exe"
  • 類型:字串

執行 npm explore 命令要執行的 shell。

簽署 Git 提交

  • 預設值:false
  • 類型:布林值

如果設為 true,則 npm version 命令會使用 -S 來提交新的套件版本,以新增簽章。

請注意,git 要求您在 git 設定中設定 GPG 金鑰,才能正常運作。

簽署 Git 標籤

  • 預設值:false
  • 類型:布林值

如果設為 true,則 npm version 命令會使用 -s 來標記版本,以新增簽章。

請注意,git 要求您在 git 設定中設定 GPG 金鑰,才能正常運作。

嚴格同儕依賴

  • 預設值:false
  • 類型:布林值

如果設為 true,且 --legacy-peer-deps 未設定,則 任何 衝突的 peerDependencies 都會被視為安裝失敗,即使 npm 可以根據非對等相依關係合理猜測適當的解析度。

預設情況下,相依關係圖中深層的衝突 peerDependencies 將使用最近的非對等相依關係規格來解析,即使這樣做會導致某些套件接收超出其套件的 peerDependencies 物件中設定的範圍的對等相依關係。

當執行這樣的覆寫時,會印出一個警告,說明衝突和涉及的套件。如果設定 --strict-peer-deps,則此警告會被視為失敗。

嚴格 SSL

  • 預設值:true
  • 類型:布林值

透過 https 向登錄檔提出請求時,是否執行 SSL 金鑰驗證。

另請參閱 ca 設定檔。

標籤

  • 預設值:"latest"
  • 類型:字串

如果你要求 npm 安裝套件,但沒有告訴它特定版本,則它會安裝指定的標籤。

如果沒有給定明確的標籤,則也是 npm tag 指令指定的 package@version 所新增的標籤。

npm diff 指令使用時,這是用來擷取 tarball 的標籤,而 tarball 會與預設的本機檔案進行比較。

標籤版本前綴

  • 預設值:"v"
  • 類型:字串

如果設定,則會在使用 npm version 執行版本遞增時,變更標記新版本的字首。若要完全移除字首,請將其設定為空字串:""

由於其他工具可能依賴 npm 版本標籤看起來像 v1.0.0 的慣例,只有在絕對必要時才使用此屬性。特別是,覆寫公開套件的此設定時要小心。

計時

  • 預設值:false
  • 類型:布林值

如果為 true,則會將計時資訊寫入快取或 logs-dir 中的特定於處理程序的 json 檔案。檔案名稱以 -timing.json 結尾。

你可以使用這個 json 指令列快速檢視:cat ~/.npm/_logs/*-timing.json | npm exec -- json -g

計時資訊也會在終端機中報告。若要在仍寫入計時檔案的同時抑制此資訊,請使用 --silent

umask

  • 預設值:0
  • 類型:範圍在 0000..0777 (0..511) 的八進位數字字串

在設定檔案和資料夾的檔案建立模式時要使用的「umask」值。

資料夾和可執行檔會獲得一個模式,該模式是 0o777 遮罩針對此值。其他檔案會獲得一個模式,該模式是 0o666 遮罩針對此值。

請注意,底層系統也會將其自己的 umask 值套用至所建立的檔案和資料夾,而 npm 並不會規避此情況,而是會將 --umask 設定檔新增至其中。

因此,大多數 POSIX 系統上的有效預設 umask 值為 0o22,表示資料夾和可執行檔會以 0o755 模式建立,而其他檔案則會以 0o644 模式建立。

Unicode

  • 預設值:Windows 為 false,Mac/Unix 系統為 true,且具有 Unicode 區域設定,由 LC_ALLLC_CTYPELANG 環境變數定義。
  • 類型:布林值

設為 true 時,npm 會在樹狀結構輸出中使用 Unicode 字元。設為 false 時,會使用 ASCII 字元取代 Unicode 字形。

更新通知

  • 預設值:true
  • 類型:布林值

設為 false 以在使用舊版 npm(而非最新版本)時,取消更新通知。

用法

  • 預設值:false
  • 類型:布林值

顯示指定命令的簡短使用說明。

使用者代理

  • 預設值:"npm/{npm-version} node/{node-version} {platform} {arch} workspaces/{workspaces} {ci}"
  • 類型:字串

設定 User-Agent 要求標頭。下列欄位會以其實際對應項取代

  • {npm-version} - 使用中的 npm 版本
  • {node-version} - 使用中的 Node.js 版本
  • {platform} - process.platform 的值
  • {arch} - process.arch 的值
  • {workspaces} - 如果設定 workspacesworkspace 選項,則設為 true
  • {ci} - 如果設定 ci-name 設定檔,則為其值,並加上 ci/ 前綴,如果 ci-name 為空,則為空字串。

使用者設定

  • 預設值: "~/.npmrc"
  • 類型:路徑

使用者層級設定檔的位置。

這可能會被 npm_config_userconfig 環境變數或 --userconfig 命令列選項覆寫,但不能被 globalconfig 檔案中的設定覆寫。

版本

  • 預設值:false
  • 類型:布林值

如果為真,輸出 npm 版本並成功退出。

僅在命令列中明確指定時才相關。

版本

  • 預設值:false
  • 類型:布林值

如果為真,輸出 npm 版本以及 node 的 process.versions 映射,以及當前工作目錄中的 package.json 檔案中的版本(如果存在),並成功退出。

僅在命令列中明確指定時才相關。

檢視器

  • 預設值:在 Posix 上為「man」,在 Windows 上為「browser」
  • 類型:字串

用於檢視說明內容的程式。

設為 "browser" 以在預設的網路瀏覽器中檢視 html 說明內容。

哪一個

  • 預設值:null
  • 類型:null 或數字

如果有多個資助來源,開啟哪一個 1 為索引的來源網址。

工作空間

  • 預設值
  • 類型:字串(可設定多次)

啟用在當前專案的已設定工作區的環境中執行命令,同時透過僅執行此設定選項定義的工作區來進行篩選。

workspace 設定的有效值為

  • 工作區名稱
  • 工作區目錄的路徑
  • 父工作區目錄的路徑(將導致選取該資料夾中的所有工作區)

當設定為 npm init 命令時,這可能會設定為尚未存在的資料夾的工作區,以建立資料夾並將其設定為專案中的全新工作區。

此值不會匯出到子程式的環境。

工作空間

  • 預設值:null
  • 類型:null 或布林

設為真以在所有已設定工作區的環境中執行命令。

明確將此設定為假會導致 install 等命令完全忽略工作區。未明確設定時

  • node_modules 樹狀結構上運作的命令(install、update 等)會將工作區連結到 node_modules 資料夾中。- 執行其他操作的命令(test、exec、publish 等)會在根專案上運作,除非workspace 設定中指定一個或多個工作區。

此值不會匯出到子程式的環境。

更新工作空間

  • 預設值:true
  • 類型:布林值

如果設為真,npm cli 會在可能將已安裝的工作區變更到 node_modules 資料夾的操作後執行更新。

  • 預設值:null
  • 類型:null 或布林

自動回答 npm 可能在命令列上列印的任何提示為「是」。

  • 預設值:null
  • 類型:null、「dev」或「development」
  • 已棄用:請改用 --include=dev。

設定為 devdevelopment 時,這會成為 --include=dev 的別名。

快取最大值

  • 預設值:Infinity
  • 類型:數字
  • 已棄用:此選項已棄用,建議改用 --prefer-online

--cache-max=0--prefer-online 的別名

快取最小值

  • 預設值:0
  • 類型:數字
  • 已棄用:此選項已棄用,建議改用 --prefer-offline

--cache-min=9999 (或更大)--prefer-offline 的別名。

憑證

  • 預設值:null
  • 類型:null 或字串
  • 已棄用:keycert 不再用於大多數登錄操作。請改用登錄範圍的 keyfilecertfile。範例://other-registry.tld/:keyfile=/path/to/key.pem //other-registry.tld/:certfile=/path/to/cert.crt

存取登錄時要傳遞的用戶端憑證。值應為 PEM 格式(Windows 稱之為「Base-64 編碼的 X.509 (.CER)」,且換行符號已替換為字串「\n」。例如

cert="-----BEGIN CERTIFICATE-----\nXXXX\nXXXX\n-----END CERTIFICATE-----"

不是憑證檔案的路徑,但你可以設定一個登錄範圍的「certfile」路徑,例如「//other-registry.tld/:certfile=/path/to/cert.pem」。

開發

  • 預設值:false
  • 類型:布林值
  • 已棄用:請改用 --include=dev。

--include=dev 的別名。

全域樣式

  • 預設值:false
  • 類型:布林值
  • 已棄用:此選項已棄用,建議改用 --install-strategy=shallow

僅安裝頂層 node_modules 中的直接依賴項,但將較深的依賴項提升。設定 --install-strategy=shallow

init.author.email

  • 預設值:""
  • 類型:字串
  • 已棄用:請改用 --init-author-email

--init-author-email 的別名

init.author.name

  • 預設值:""
  • 類型:字串
  • 已棄用:請改用 --init-author-name

--init-author-name 的別名

init.author.url

  • 預設值:""
  • 類型:"" 或 URL
  • 已棄用:請改用 --init-author-url

--init-author-url 的別名

init.license

  • 預設值:"ISC"
  • 類型:字串
  • 已棄用:請改用 --init-license

--init-license 的別名

init.module

  • 預設值: "~/.npm-init.js"
  • 類型:路徑
  • 已棄用:請改用 --init-module

--init-module 的別名

init.version

  • 預設值:"1.0.0"
  • 類型:SemVer 字串
  • 已棄用:請改用 --init-version

別名為 --init-version

金鑰

  • 預設值:null
  • 類型:null 或字串
  • 已棄用:keycert 不再用於大多數登錄操作。請改用登錄範圍的 keyfilecertfile。範例://other-registry.tld/:keyfile=/path/to/key.pem //other-registry.tld/:certfile=/path/to/cert.crt

存取登錄時要傳遞的客戶端金鑰。值應為 PEM 格式,且換行符號已替換為字串「\n」。例如

key="-----BEGIN PRIVATE KEY-----\nXXXX\nXXXX\n-----END PRIVATE KEY-----"

不是 金鑰檔案路徑,但您可以設定登錄範圍的「金鑰檔案」路徑,例如「//other-registry.tld/:keyfile=/path/to/key.pem」。

舊版套件

  • 預設值:false
  • 類型:布林值
  • 已棄用:此選項已棄用,建議改用 --install-strategy=nested

不要在 node_modules 中提升套件安裝,而是以與其相依的方式安裝套件。這可能會造成非常深的目錄結構和重複的套件安裝,因為沒有重複資料刪除。設定 --install-strategy=nested

  • 預設值:null
  • 類型:null、「prod」或「production」
  • 已棄用:請使用 --omit=dev 來從安裝中省略開發相依項。

設定為 prodproduction 時,這是 --omit=dev 的別名。

可選

  • 預設值:null
  • 類型:null 或布林
  • 已棄用:請使用 --omit=optional 來排除選用相依項,或使用 --include=optional 來包含它們。

預設值會安裝選用相依項,除非另行省略。

--include=optional 或 --omit=optional 的別名

生產

  • 預設值:null
  • 類型:null 或布林
  • 已棄用:請改用 --omit=dev

別名為 --omit=dev

shrinkwrap

  • 預設值:true
  • 類型:布林值
  • 已棄用:請改用 --package-lock 設定。

--package-lock 的別名

另請參閱