.npmrc完全解析及用法

JavaScript的包管理器npm是一種非常流行的方法,用於在一個項目中安裝和管理依賴項。在項目目錄中,有一個名為.npmrc的文件,它是npm命令的一個配置文件,也是一個重要的配置文件,掌握它的用法就可以讓我們在用npm時更加方便。

一、全局和項目級別的配置

在npm中,存在兩種級別的配置文件,一種是全局級別的,即檢索頂級的文件夾,包括用戶目錄:~/.npmrc,可用於定義全局的npm配置,例如設置代理等信息。另一種是項目級別的,即在每個包含package.json文件的項目中,都可以定義自己的.npmrc文件。項目級別的.npmrc文件會覆蓋全局的配置文件,可以用於自定義此項目的npm配置,這是一個非常有用的功能。

在一個項目中創建.npmrc文件的方法是非常簡單的,只需要使用touch命令創建一個空文件然後設置相應的配置信息即可:

.npmrc
#定義npm代理伺服器地址
registry=https://registry.npmjs.org/

#定義代理伺服器地址
proxy=http://IP:Port

#定義https請求時的代理伺服器地址
https-proxy=http://IP:Port

#定義registry的Windows認證信息
_auth=$AUTH
always-auth=true

配置文件中的每一行表示一條配置,#表示注釋,這裡我們簡單介紹一下上面每一個配置項的作用。

二、registry配置

在npm中,包的元數據和包本身是存儲在網路registry上的,當我們執行npm install命令時,會先在registry中查找是否存在指定的包,如果存在就會從registry中下載安裝,否則會報出錯誤。

.npmrc中registry指令用於指定從哪個registry伺服器安裝依賴包。默認情況下,這個值將從npm的全局配置文件中獲取。如果我們喜歡使用淘寶的鏡像來加速下載,那麼我們可以在.npmrc文件中設置如下內容:

registry=https://registry.npm.taobao.org/

這樣,就會從淘寶的鏡像源來安裝npm依賴包。

三、proxy和https-proxy配置

如果我們目前的環境處於區域網中,那麼我們下載依賴包很有可能會受到網路防火牆的限制,而使用代理伺服器則可以有效地解決這個問題,這時我們需要在.npmrc中設置代理伺服器地址,有兩個不同的配置項可用於配置http和https的訪問協議:

proxy=http://IP:Port

https-proxy=http://IP:Port

我們只需要將IP和Port替換成對應配置即可。如果存在多個代理伺服器,可以配置為:

proxy=http://proxy1:8080/
https-proxy=http://proxy2:8080/

四、認證token的配置

在.npmrc中,_auth配置用於存儲npm註冊表的登錄信息,也就是說,如果我們需要安裝一個依賴包,那麼我們需要在安裝之前通過驗證登陸。

我們可以在登錄npm時加上–tmpl=auth-and-token來獲得encodeURIComponent字元串,來進行安裝npm包時的認證操作:

npm login --registry=http://registry.npmjs.org/ --scope=@scope --always-auth --tmpl=auth-and-token

可以把_template傳遞給Node.js來encode _auth:

//包載入
const Npmrc = require('@npmcli/config')
const npmrc = new Npmrc()

//輸入Your username, Your password和Your email
sudo npmrc -c https://registry.npmjs.org/ --parseable --userconfig=/path/to/.npmrc --always-auth --scope=your_scope

let data = npmrc.toCLI()
//獲取最後一個_auth
console.log(data._auth)

這裡需要注意的是,_auth信息是不可以任意泄露的敏感信息,不要把.npmrc和.log文件發布到公共倉庫或者開源的地方。

五、關於npm的cache緩存和tmp臨時數據的存儲位置

npm安裝package時會緩存已經下載的package,以便可以在之後重新安裝或類似的操作,減少網路帶寬的使用。npm cache命令用於管理npm的緩存,如npm cache ls列出cache中安裝包的信息,npm cache clean清除緩存。但.cache和.tmp是在用戶的本地機器上,可對應目錄進行手動刪除。

.npmrc中cache和tmp配置項用於定義緩存和臨時文件所在的位置,默認情況下都是在用戶主目錄下的.npm-cache和.tmp文件夾下,可以通過以下方式進行配置:

cache = /path/to/cache
tmp = /path/to/tmp

六、其他配置項

除了上述介紹的幾個常用的配置項,.npmrc還有很多其他的配置項,有興趣的可以去npm的官方文檔中查看。不過,我們在使用這些配置項的時候,一定要遵守npm官方的寫法規範,這樣可以更好地完成npm的工作。

七、總結

npm作為一種非常流行的包管理工具,在我們的開發工作中起到了非常重要的作用,.npmrc作為npm命令的一個配置文件,掌握它的使用方法可以讓我們更好地進行npm包的管理安裝。

原創文章,作者:CGPND,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/332402.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
CGPND的頭像CGPND
上一篇 2025-01-21 17:30
下一篇 2025-01-24 18:46

相關推薦

  • Npmrc文件解密

    一、npmrc文件的概念 npmrc文件是npm配置文件之一,是npm用於保存用戶所需npm配置信息的文件。每當npm執行命令時,它會自動讀取相應配置文件來確定它所需要的配置信息。…

    編程 2024-10-04

發表回復

登錄後才能評論