目錄
設定
選擇 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
。
注意:對於現有套件,預設值是不變更目前的存取層級。在發布期間指定 restricted
或 public
的值,將變更現有套件的存取權,方式與 npm access set status
相同。
all
- 預設值:false
- 類型:布林值
在執行 npm outdated
和 npm 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
,即使 latest
是 2.0
。
bin-links
- 預設值: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 進行任何變更,且它只應報告它會執行的動作。這可以傳遞給任何修改您本地安裝的指令,例如 install
、update
、dedupe
、uninstall
,以及 pack
和 publish
。
注意:其他與網路相關的指令不會遵循這項設定,例如 dist-tags
、owner
等。
editor
- 預設值:EDITOR 或 VISUAL 環境變數,或 Windows 上的 '%SYSTEMROOT%\notepad.exe',或 Unix 系統上的 'vi'
- 類型:字串
為 npm edit
和 npm 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 pack
或npm publish
,預設值為true
- 類型:布林值
執行已安裝套件的前置處理程序的所有建置腳本(即 preinstall
、install
和 postinstall
),並與主 npm 處理程序共用標準輸入、輸出和錯誤。
請注意,這通常會讓安裝執行得更慢,而且會更吵,但對於除錯很有用。
format-package-lock
- 預設值:true
- 類型:布林值
將 package-lock.json
或 npm-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_PROXY
或 https_proxy
或 HTTP_PROXY
或 http_proxy
環境變數,底層 make-fetch-happen
函式庫將會遵循代理設定。
if-present
- 預設值:false
- 類型:布林值
如果為 true,當 run-script
呼叫 package.json
的 scripts
區段中未定義的指令碼時,npm 將不會以錯誤碼結束。當需要在指令碼存在時選擇性執行指令碼,並在指令碼失敗時失敗時,可以使用此選項。例如,在執行可能僅適用於其他一般 CI 設定中某些建置的指令碼時,這項功能會很有用。
此值不會匯出到子程式的環境。
ignore-scripts
- 預設值:false
- 類型:布林值
如果為 true,npm 就不會執行 package.json 檔案中指定的指令碼。
請注意,明確用於執行特定指令碼的指令,例如 npm start
、npm stop
、npm restart
、npm test
和 npm 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
應預設使用的套件版本號碼值。
install-links
- 預設值: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
欄位相同。
link
- 預設值:false
- 類型:布林值
與 npm ls
搭配使用,將輸出限制為僅連結的套件。
local-address
- 預設值:null
- 類型:IP 位址
與 npm 登錄檔建立連線時,要使用的本機介面的 IP 位址。在 0.12 之前的 Node 版本中,必須是 IPv4。
location
- 預設值:
user
,除非傳遞--global
,這也會將此值設定為global
- 類型:
global
、user
或project
傳遞給 npm config
時,這表示要使用哪個設定檔。
設定為 global
模式時,套件會安裝到 prefix
資料夾,而不是目前的作業目錄。請參閱 資料夾,深入了解行為上的差異。
- 套件安裝到
{prefix}/lib/node_modules
資料夾,而不是目前的作業目錄。 - bin 檔案連結到
{prefix}/bin
- man 頁面連結到
{prefix}/share/man
lockfile-version
- 預設值:如果沒有鎖定檔,則為版本 3,自動將 v1 鎖定檔轉換為 v3,否則維持目前的鎖定檔版本。
- 類型:null、1、2、3、
1
、2
或3
設定要使用在 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
- 類型:布林值
在 ls
、search
和 help-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.json
或 npm-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_PROXY
或 http_proxy
環境變數,底層 request
函式庫會遵守代理伺服器設定。
唯讀
- 預設值:false
- 類型:布林值
這用於將權杖標記為無法發布,同時使用 npm token create
命令設定受限存取權杖。
重建套件
- 預設值:true
- 類型:布林值
安裝後重建已套件化的相依性。
註冊
- 預設值:"https://registry.npmjs.org/"
- 類型:URL
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
中。如果套件已存在於 devDependencies
或 optionalDependencies
中,但您希望將其移至非必要的生產相依項,則這會很有用。
如果 --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 registrynpm login --scope=@mycorp --registry=https://registry.mycorp.com# log out, removing the link and the auth tokennpm 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 exec
、npm run
和 npm 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_ALL
、LC_CTYPE
或LANG
環境變數定義。 - 類型:布林值
設為 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}
- 如果設定workspaces
或workspace
選項,則設為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。
設定為 dev
或 development
時,這會成為 --include=dev
的別名。
快取最大值
- 預設值:Infinity
- 類型:數字
- 已棄用:此選項已棄用,建議改用
--prefer-online
--cache-max=0
是 --prefer-online
的別名
快取最小值
- 預設值:0
- 類型:數字
- 已棄用:此選項已棄用,建議改用
--prefer-offline
。
--cache-min=9999 (或更大)
是 --prefer-offline
的別名。
憑證
- 預設值:null
- 類型:null 或字串
- 已棄用:
key
和cert
不再用於大多數登錄操作。請改用登錄範圍的keyfile
和certfile
。範例://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 或字串
- 已棄用:
key
和cert
不再用於大多數登錄操作。請改用登錄範圍的keyfile
和certfile
。範例://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
來從安裝中省略開發相依項。
設定為 prod
或 production
時,這是 --omit=dev
的別名。
可選
- 預設值:null
- 類型:null 或布林
- 已棄用:請使用
--omit=optional
來排除選用相依項,或使用--include=optional
來包含它們。
預設值會安裝選用相依項,除非另行省略。
--include=optional 或 --omit=optional 的別名
生產
- 預設值:null
- 類型:null 或布林
- 已棄用:請改用
--omit=dev
。
別名為 --omit=dev
shrinkwrap
- 預設值:true
- 類型:布林值
- 已棄用:請改用 --package-lock 設定。
--package-lock 的別名