npm 從以下來源獲取其配置值,按優(yōu)先級排序:
將 --foo bar
放在命令行上會將 foo
配置參數(shù)設置為 bar
。?--
參數(shù)告訴 CLI 解析器停止讀取標志。在--flag
不指定任何值的情況下使用會將值設置為true
。
例如:--flag1 --flag2
會將兩個配置參數(shù)都設置為true
,而--flag1 --flag2 bar
會將flag1
設置為true
,將flag2
設置為bar
。最后,--flag1 --flag2 -- bar
將兩個配置參數(shù)都設置為true
,并將bar
當作命令參數(shù)。
任何以npm_config_
開頭的環(huán)境變量都將被解釋為配置參數(shù)。例如,將?npm_config_foo=bar
放在您的環(huán)境中會將foo
?配置參數(shù)設置為bar
.?任何未賦予值的環(huán)境配置都將賦予true
值。配置值不區(qū)分大小寫,因此NPM_CONFIG_FOO=bar
的工作方式相同。但是,請注意,在 npm-scripts 中,?npm 會設置自己的環(huán)境變量,而 Node 會更喜歡那些小寫版本,而不是您可能設置的任何大寫版本。有關詳細信息,請參閱此問題。
請注意,您需要使用下劃線而不是破折號,因此--allow-same-version
?會變成npm_config_allow_same_version=true
.
四個相關文件是:
/path/to/my/project/.npmrc
)$HOME/.npmrc
;--userconfig
或環(huán)境變量配置$NPM_CONFIG_USERCONFIG
)全局配置文件(默認為$PREFIX/etc/npmrc
;--globalconfig
或環(huán)境變量配置$NPM_CONFIG_GLOBALCONFIG
)npm 的內置配置文件 (?/path/to/npm/npmrc
)有關更多詳細信息,請參閱npmrc。
運行npm config ls -l
以查看一組 npm 內部的配置參數(shù),如果未指定其他參數(shù),則為默認值。
在命令行上解析以下速記:
-v
:?--version
-h
,?-?
,?--help
,?-H
:?--usage
-s
,?--silent
:?--loglevel silent
-q
,?--quiet
:?--loglevel warn
-d
:?--loglevel info
-dd
,?--verbose
:?--loglevel verbose
-ddd
:?--loglevel silly``-g
:?--global``-C
:?--prefix
-l
:?--long``-m
:?--message
-p
,?--porcelain
:?--parseable
-reg
:?--registry
-f
:?--force
-desc
:?--description
-S
:?--save
-P
:?--save-prod
-D
:?--save-dev
-O
:?--save-optional
-B
:?--save-bundle
-E
:?--save-exact
-y
:?--yes
-n
:?--yes false
ll
和la
命令:ls --long
如果指定的配置參數(shù)明確解析為已知配置參數(shù),則將其擴展為該配置參數(shù)。例如:
npm ls --par
## same as:
npm ls --parseable
如果多個單字符速記串在一起,并且得到的組合明確不是其他配置參數(shù),那么它會擴展到其各個組成部分。例如:
npm ls -gpld
## same as:
npm ls --global --parseable --long --loglevel info
運行腳本時(請參閱[npm-scripts](https://www.npmjs.cn/misc/scripts)
參考資料),如果 config 參數(shù)為?<name>[@<version>]:<key>
.?例如,如果 package.json 有這個:
{ "name" : "foo"
, "config" : { "port" : "8080" }
, "scripts" : { "start" : "node server.js" } }
server.js 是這樣的:
http.createServer(...).listen(process.env.npm_package_config_port)
然后用戶可以通過執(zhí)行以下操作來更改行為:
npm config set foo:port 80
有關更多信息,請參閱package.json。
發(fā)布范圍包時,訪問級別默認為 restri發(fā)布范圍包時,訪問級別默認為restricted
。如果您希望您的范圍包公開可見(和可安裝) set?--access=public
。的唯一有效值access
是public
和?restricted
。無作用域的包的訪問級別始終為public
.
防止在npm version
用于將新版本設置為與當前版本相同的值時拋出錯誤。
強制 npm 在訪問注冊表時始終需要身份驗證,即使對于GET
請求也是如此。
當“dev”或“development”并在本地運行時npm shrinkwrap
,?npm outdated
, 或npm update
是--dev
.
當為“true”時,將審計報告與npm install
運行一起提交到默認注冊表和為范圍配置的所有注冊表。有關提交內容的詳細信息,請參閱npm-audit的文檔。
"low"
'low'
,?'moderate'
,?'high'
,'critical'``npm audit
以非零退出代碼退出的最低漏洞級別。
'legacy'
'legacy'
,?'sso'
,?'saml'
,'oauth'
與adduser
/一起使用的身份驗證策略login
。
true
告訴 npm.cmd
為包可執(zhí)行文件創(chuàng)建符號鏈接(或Windows 上的墊片)。
設置為 false 使其不這樣做。這可以用來解決一些文件系統(tǒng)不支持符號鏈接的事實,即使在表面上是 Unix 系統(tǒng)上。
"open"
, Windows:?"start"
, 其他:"xdg-open"
由npm docs
命令調用以打開網站的瀏覽器。
到注冊表的 SSL 連接受信任的證書頒發(fā)機構簽名證書。值應采用 PEM 格式(Windows 稱其為“Base-64 編碼的 X.509 (.CER)”),換行符替換為字符串“\n”。例如:
ca="-----BEGIN CERTIFICATE-----\nXXXX\nXXXX\n-----END CERTIFICATE-----"
設置為null
僅允許“已知”注冊商,或特定 CA 證書僅信任該特定簽名機構。
通過指定一組證書,可以信任多個 CA:
ca[]="..."
ca[]="..."
另請參閱strict-ssl
配置。
包含一個或多個證書頒發(fā)機構簽名證書的文件的路徑。與 ca 設置類似,但允許多個 ca,以及將 ca 信息存儲在磁盤上的文件中。
npm 緩存目錄的位置。看 [npm-cache][]
緩存文件夾鎖定文件被視為陳舊之前的毫秒數(shù)。
重試獲取緩存文件夾鎖定文件鎖定的次數(shù)。
等待緩存鎖定文件到期的毫秒數(shù)。
已棄用:此選項已被棄用,以支持--prefer-online
.
--cache-max=0
是--prefer-online
的別名。
已棄用:此選項已被棄用,以支持--prefer-offline
.
--cache-min=9999 (or bigger)
是--prefer-offline
的別名。
null
訪問注冊表時要傳遞的客戶端證書。值應采用 PEM 格式(Windows 稱其為“Base-64 編碼的 X.509 (.CER)”),換行符替換為字符串“\n”。例如:
cert="-----BEGIN CERTIFICATE-----\nXXXX\nXXXX\n-----END CERTIFICATE-----"
它不是證書文件的路徑(并且沒有“certfile”選項)。
這是使用npm token create
命令配置受限訪問令牌時要使用的 CIDR 地址列表。
"always"
如果為 false,則從不顯示顏色。如果"always"
然后總是顯示顏色。如果為 true,則僅打印 tty 文件描述符的顏色代碼。
也可以使用環(huán)境更改此選項:當環(huán)境變量NO_COLOR
設置為任何值時,顏色將被禁用。
深度為遞歸目錄時去npm ls
,?npm cache ls
和npm outdated
。
對于npm outdated
, 的設置Infinity
將被視為0
?因為它提供了更多有用的信息。要顯示所有包和依賴項的過時狀態(tài),請使用大整數(shù)值,例如,npm outdated --depth 9999
顯示說明?npm search
dev-dependencies
與軟件包一起安裝。
表示您不希望 npm 進行任何更改并且它應該只報告它會做的事情。這可以傳遞到修改本地安裝的任何命令中,例如,install
,update
,?dedupe
,uninstall
。這是不是目前一些網絡相關的命令,如兌現(xiàn)dist-tags
,owner
等等。
EDITOR
環(huán)境變量(如果已設置)、"vi"
Posix 或"notepad"
Windows。
為npm edit
or運行的命令npm config edit
。
如果設置為 true,那么 npm 將頑固地拒絕安裝(甚至考慮安裝)任何聲稱與當前 Node.js 版本不兼容的包。
使各種命令更有力:
retry
從注冊表中獲取包時要使用的模塊的“重試”配置。
retry
模塊在獲取包時使用的“因子”配置。
retry
模塊在獲取包時使用的“minTimeout”配置。
retry
模塊在獲取包時使用的“maxTimeout”配置。
"git"
用于 git 命令的命令。如果 git 安裝在計算機上,但不在 中PATH
,則將其設置為 git 二進制文件的完整路徑。
true
使用npm version
命令時標記提交。
true
使用npm version
命令時運行 git commit hooks?。
在“全局”模式下運行,以便將包安裝到?prefix
文件夾而不是當前工作目錄中。有關[npm-folders](https://www.npmjs.cn/files/folders)
行為差異的更多信息,請參閱?。
軟件包安裝到{prefix}/lib/node_modules
文件夾中,而不是當前工作目錄中。bin 文件鏈接到?{prefix}/bin
手冊頁鏈接到?{prefix}/share/man
要讀取全局配置選項的配置文件。
使 npm 以node_modules
與全局node_modules
文件夾相同的布局將包安裝到本地文件夾中。只有您的直接依賴項會顯示在其中,node_modules
并且它們所依賴的所有內容都將在其node_modules
文件夾中展平。這顯然會消除一些重復數(shù)據刪除。如果與 一起使用legacy-bundling
,legacy-bundling
將是首選。
以 root 用戶身份在全局模式下運行包腳本時要使用的組。
"npm"
啟動所有調試日志輸出的字符串。
用于傳出 https 請求的代理。如果設置了HTTPS_PROXY
or?https_proxy
或HTTP_PROXY
orhttp_proxy
環(huán)境變量,則底層request
庫將遵循代理設置。
如果為真,NPM不會有錯誤代碼時退出run-script
被調用未在定義腳本scripts
的部分package.json
。當需要有選擇地運行存在的腳本并在腳本失敗時失敗時,可以使用此選項。這很有用,例如,在運行可能僅適用于其他通用 CI 設置中的某些構建的腳本時。
如果為 true,npm 將不會運行prepublish
腳本。
如果為 true,則 npm 不會運行 package.json 文件中指定的腳本。
將由npm init
命令加載的模塊。有關更多信息,請參閱init-package-json模塊的文檔?或npm-init。
該值npm init
應該由默認包的作者的名字使用。
該值npm init
應該是默認對于包的作者的電子郵件使用。
該值npm init
應該由默認包作者的主頁使用。
該值npm init
應為默認包許可使用。
該值npm init
應該默認軟件包版本號使用,如果在的package.json尚未設置。
是否輸出JSON數(shù)據,而不是正常輸出。
此功能目前處于試驗階段,許多命令的輸出數(shù)據結構尚未在 JSON 中實現(xiàn),或者可能會發(fā)生變化。只有來自npm ls --json
和的輸出npm search --json
當前有效。
null
訪問注冊表時要傳遞的客戶端密鑰。值應為 PEM 格式,換行符替換為字符串“\n”。例如:
key="-----BEGIN PRIVATE KEY-----\nXXXX\nXXXX\n-----END PRIVATE KEY-----"
它不是密鑰文件的路徑(并且沒有“密鑰文件”選項)。
使 npm 安裝包,以便 1.4 之前的 npm 版本,例如 node 0.8 中包含的版本,可以安裝該包。這消除了所有自動重復數(shù)據刪除。如果與global-style
此選項一起使用將是首選。
如果為 true,則本地安裝將鏈接是否有合適的全局安裝包。 請注意,這意味著本地安裝可能會導致同時將事物安裝到全局空間中。僅當滿足兩個條件之一時才完成鏈接: 該軟件包尚未全局安裝,或全局安裝的版本與本地安裝的版本相同。
連接到 npm 注冊表時要使用的本地接口的 IP 地址。在 0.12 之前的 Node 版本中必須是 IPv4。
要報告的日志級別。失敗時,所有日志都寫入?npm-debug.log
當前工作目錄。
顯示任何高于設置級別的日志。默認值為“通知”。
這是在運行時傳遞給npmlog模塊的流?。
它不能從命令行設置,但如果您以編程方式使用 npm,您可能希望將日志發(fā)送到 stderr 以外的其他地方。
如果color
配置設置為 true,則此流將接收彩色輸出(如果它是 TTY)。
要存儲的最大日志文件數(shù)。
在npm ls
和 中顯示擴展信息npm search
。
每個源使用的最大連接數(shù)(協(xié)議/主機/端口組合)。傳遞給http
?Agent
用于發(fā)出請求的對象。
npm version
創(chuàng)建版本提交時使用的提交消息。
消息中的任何“%s”都將替換為版本號。
registry
的值(默認為“https://registry.npmjs.org/”)
您要向其發(fā)送 cli 指標的注冊表是否send-metrics
為 true。
通過NODE_OPTIONS
環(huán)境變量傳遞到 Node.js 的選項。這不會影響 npm 本身的執(zhí)行方式,但會影響生命周期腳本的調用方式。
檢查包的engines
映射時要使用的節(jié)點版本。
不應使用代理的逗號分隔字符串或域擴展數(shù)組。
強制離線模式:安裝過程中不會進行網絡請求。要允許 CLI 填充丟失的緩存數(shù)據,請參閱--prefer-offline
。
require()
npm 加載時的節(jié)點模塊。對編程使用很有用。
當 "dev" 或 "development" 并且在npm install
沒有任何參數(shù)的情況下在本地運行時,只會安裝 devDependencies(及其依賴項)。
當“dev”或“development”并在本地運行時npm ls
,npm outdated
, 或?npm update
是--dev
.
當“prod”或“production”并且在npm install
沒有任何參數(shù)的情況下在本地運行時,只會安裝非 devDependencies(及其依賴項)。
當“prod”或“production”并在本地運行時npm ls
,npm outdated
, 或?npm update
是--production
.
嘗試在optionalDependencies
對象中安裝包。請注意,如果這些軟件包安裝失敗,則不會中止整個安裝過程。
這是來自兩因素身份驗證器的一次性密碼。使用npm access
.
如果設置為 false,則package-lock.json
在安裝時忽略文件。如果為真,這也將阻止寫入?。package-lock.json``save
當包包鎖被禁用時,無關模塊的自動修剪也將被禁用。要刪除禁用包鎖的無關模塊,請使用npm prune
.
此選項是 的別名--shrinkwrap
。
如果設置為 true,它將只更新package-lock.json
,而不是檢查node_modules
和下載依賴項。
從寫入標準輸出的命令輸出可解析的結果。對于npm search
,這將是制表符分隔的表格格式。
如果為 true,將繞過對緩存數(shù)據的陳舊檢查,但將從服務器請求丟失的數(shù)據。要強制完全離線模式,請使用--offline
.
此選項實際上等效于--cache-min=9999999
.
如果為 true,則將強制對緩存數(shù)據進行陳舊性檢查,從而使 CLI 立即查找更新,即使是新的包數(shù)據。
安裝全局項的位置。如果在命令行上設置,則它會強制非全局命令在指定文件夾中運行。
用作 semver 的“預發(fā)布”部分的前綴的“預發(fā)布標識符”。就像rc
在1.2.0-rc.8
.
設置為 true 以在“生產”模式下運行。
在npm install
沒有任何參數(shù)的情況下運行本地時,devDependencies 不會安裝在最頂層。為生命周期腳本設置 NODE_ENV="production"。
設置為true
時,如果process.stderr
是 TTY?,npm 將在時間密集型操作期間顯示進度條。
設置為false
抑制進度條。
用于傳出 http 請求的代理。如果設置了HTTP_PROXY
或?http_proxy
環(huán)境變量,則底層request
庫將遵循代理設置。
這用于在使用npm token create
命令配置受限訪問令牌時將令牌標記為無法發(fā)布。
安裝后重建捆綁的依賴項。
npm 包注冊表的基本 URL。
刪除失敗的安裝。
將已安裝的包作為依賴項保存到 package.json 文件中。
當與npm rm
命令一起使用時,它會將它從dependencies
?對象中刪除。
僅當存在 package.json 文件時才有效。
如果一個軟件包將在通過使用安裝時被保存--save
,?--save-dev
或者--save-optional
,那么也把它在?bundleDependencies
列表中。
與該npm rm
命令一起使用時,它會將其從 bundledDependencies 列表中刪除。
確保一個包將被dependencies
專門保存到。如果包已經存在于devDependencies
或 中?optionalDependencies
,但您想將其移動為生產部門,則這很有用。如果--save
為真,則這也是默認行為,兩者都不為真--save-dev
或?--save-optional
都為真。
將已安裝的包作為 .json 文件保存到 package.json 文件中devDependencies
。
當與npm rm
命令一起使用時,它會將它從devDependencies
對象中刪除?。
僅當存在 package.json 文件時才有效。
使用--save
,保存到 package.json 的依賴項,--save-dev
或者?--save-optional
將使用確切版本而不是使用 npm 的默認 semver 范圍運算符進行配置。
將已安裝的軟件包作為 optionalDependencies 保存到 package.json 文件中。
當與npm rm
命令一起使用時,它會將它從devDependencies
對象中刪除?。
僅當存在 package.json 文件時才有效。
配置安裝到 package.json 文件的軟件包版本如何通過?--save
或--save-dev
獲得前綴。
例如,如果一個包有 version?1.2.3
,默認情況下它的 version 被設置為^1.2.3
允許對該包進行次要升級,但之后?npm config set save-prefix='~'
它會被設置為~1.2.3
只允許補丁升級。
將操作與作用域注冊表的作用域相關聯(lián)。首次登錄私有注冊表時很有用:?npm login --scope=@organization --registry=registry.organization.com
,這將導致@organization
映射到注冊表,以便將來安裝根據模式指定的軟件包@organization/package
。
用于腳本的 shell 與npm run
命令一起運行。
"auto"
或"warn-only"
如果設置為true
,則在運行腳本時將當前node
可執(zhí)行文件所在的目錄添加到PATH
環(huán)境變量中,即使這意味著npm
將調用node
與其正在運行的可執(zhí)行文件不同的可執(zhí)行文件。
如果設置為false
,則永遠不要修改PATH
。
如果設置為"warn-only"
,則永遠不要修改,PATH
但如果npm
認為您可能想用 運行它,則打印警告true
,例如,因為 中的node
可執(zhí)行文件PATH
不是npm
被調用的可執(zhí)行文件。
如果設置為auto
,則僅PATH
當調用的node
可執(zhí)行文件與npm
第一個在 上找到的可執(zhí)行文件不同時,才將該目錄添加到環(huán)境變量中PATH
。
限制搜索結果的空格分隔選項。
始終傳遞給搜索的空格分隔選項。
限制搜索結果的項目數(shù)。根本不適用于舊版搜索。
如果使用舊搜索端點,則在發(fā)出另一個注冊表請求之前緩存的年齡(以秒為單位)。
如果為 true,成功/失敗指標將報告給存儲在?metrics-registry
.?這些請求包含 npm CLI 運行成功和失敗的次數(shù)以及收集這些計數(shù)的時間段。這些請求中不包含識別信息。
為npm explore
命令運行的 shell?。
如果設置為 false,則npm-shrinkwrap.json
在安裝時忽略文件。如果為真,這也將阻止寫入?。npm-shrinkwrap.json``save
此選項是 的別名--package-lock
。
如果設置為 true,則該npm version
命令將使用-S
添加簽名來提交新的包版本。
請注意,git 要求您在 git 配置中設置 GPG 密鑰才能正常工作。
如果設置為 true,則該npm version
命令將使用-s
添加簽名來標記版本。
請注意,git 要求您在 git 配置中設置 GPG 密鑰才能正常工作。
當與啟用 SSO 的auth-type
s 一起使用時,配置在用戶完成身份驗證時應該多久輪詢注冊表。
如果--auth-type=sso
,要使用的 SSO 類型的類型。
通過 https 向注冊中心發(fā)出請求時是否進行 SSL 密鑰驗證。
另請參閱ca
配置。
如果你要求 npm 安裝一個包并且沒有告訴它一個特定的版本,那么它會安裝指定的標簽。
npm tag
如果未給出顯式標簽,則也是添加到命令指定的 package@version 的標簽。
如果設置,則在使用 執(zhí)行版本增量時更改標記新版本時使用的前綴?npm-version
。要完全刪除前綴,將其設置為空字符串:""
。
因為其他工具可能依賴于 npm 版本標記看起來像的約定?v1.0.0
,所以只有在絕對必要時才使用此屬性。特別是,在為公共包覆蓋此設置時要小心。
如果為 true,則將npm-debug
日志_logs
和計時信息?寫入_timing.json
緩存中。?_timing.json
是一個以換行符分隔的 JSON 對象列表。您可以使用此json命令行快速查看它?:?json -g < ~/.npm/_timing.json
.
存儲臨時文件和文件夾的位置。所有臨時文件在成功時都會被刪除,但為了取證目的而在失敗時被保留。
當設置為 true 時,npm 在樹輸出中使用 unicode 字符。當為 false 時,它??使用 ascii 字符來繪制樹。
設置為 true 以在運行包腳本時禁止 UID/GID 切換。如果顯式設置為 false,則以非 root 用戶身份安裝將失敗。
設置為 false 以在使用較舊版本的 npm 時抑制更新通知。
設置為在執(zhí)行npm-help.
以 root 身份運行包腳本時要設置的 UID。
用戶級配置設置的位置。
在文件和文件夾上設置文件創(chuàng)建模式時要使用的“umask”值。
文件夾和可執(zhí)行文件被賦予一種模式,該模式0777
針對此值進行屏蔽。其他文件被賦予一種模式,該模式0666
針對此值進行屏蔽。因此,默認值分別是0755
和0644
。
將用戶代理設置為請求標頭
如果為 true,則輸出 npm 版本并成功退出。 僅在命令行上明確指定時才相關。
如果為 true,則輸出 npm 版本以及節(jié)點的process.versions
映射,并成功退出。
僅在命令行上明確指定時才相關。
用于查看幫助內容的程序。
設置為"browser"
在默認 Web 瀏覽器中查看 html 幫助內容。
更多建議: