npm 診查 doctor

2021-10-29 10:48 更新

檢查你的環(huán)境

概要

npm doctor

描述

npm doctor運行一組檢查以確保你的 npm 安裝具有管理 JavaScript 包所需的功能。npm 主要是一個獨立的工具,但它確實有一些必須滿足的基本要求:

  • Node.js 和 git 必須由 npm 執(zhí)行。
  • 主 npm 注冊表registry.npmjs.com或其他使用注冊表 API 的服務(wù)可用。
  • npm 使用的目錄node_modules(本地和全局)存在并且可以由當(dāng)前用戶寫入。
  • npm 緩存存在,其中的包 tarball 沒有損壞。

如果所有這些都不能正常工作,npm 可能無法正常工作。許多問題通常歸因于 npm 代碼庫之外的事情,因此請使用npm doctor確認(rèn) npm 安裝處于良好狀態(tài)。

另外,除此之外,由于使用舊版本的npm,也有非常多的問題報告。由于 npm 在不斷改進(jìn),因此運行起來npm@latest比舊版本更好。

npm doctor?驗證你環(huán)境中的以下項目,如果有任何建議的更改,它將顯示它們。

npm ping

默認(rèn)情況下,npm 從主 npm 注冊表registry.npmjs.org安裝。?npm doctor在注冊表中點擊一個特殊的 ping 端點。這也可以通過npm ping進(jìn)行檢查。如果此檢查失敗,你可能正在使用需要配置的代理,或者可能需要與你的 IT 人員交談以通過 HTTPS 訪問registry.npmjs.org。

此檢查針對你配置的任何注冊表進(jìn)行(你可以通過運行npm config get registry查看它是什么),如果你使用的私有注冊表不支持主注冊表支持的端點/whoami,則此檢查可能會失敗。

npm -v

雖然 Node.js 可能與特定版本的 npm 捆綁在一起,但是我們建議所有用戶盡可能運行 CLI 團隊的策略npm@latest。由于 CLI 由一小部分貢獻(xiàn)者維護,因此只有一條開發(fā)線的資源,因此 npm 自己的長期支持版本通常只收到關(guān)鍵的安全和回歸修復(fù)。該團隊認(rèn)為,最新測試的 npm 版本幾乎總是可能是功能最強大且無缺陷的 npm 版本。

node -v

對于大多數(shù)用戶來說,在大多數(shù)情況下,Node 最佳版本將是最新的長期支持 (LTS) 版本。那些想要訪問新的 ECMAscript 功能或?qū)?Node 標(biāo)準(zhǔn)庫進(jìn)行最新更改的用戶可能正在運行更新版本,而由于企業(yè)更改控制策略的原因,有些用戶可能需要運行舊版本的 Node。沒關(guān)系!但總的來說,npm 團隊建議大多數(shù)用戶運行 Node.js LTS。

npm config get registry

你們中的一些人可能會從你的項目或公司的私有包注冊表中進(jìn)行安裝。那太棒了!你們中的其他人可能正在學(xué)習(xí)教程或 StackOverflow 問題,以解決你可能遇到的問題。有時,這可能需要更改你指向的注冊表。這部分npm doctor只是讓你,也許是為你提供支持的任何人,都知道你沒有使用默認(rèn)注冊表。

which git

雖然它記錄在自述文件中,但 npm 需要安裝 Git 來完成它所做的許多事情可能并不明顯。此外,在某些情況下——尤其是在 Windows 上——你可能將 Git 設(shè)置為無法通過你的方式訪問,PATH以便 npm 可以找到它。此檢查可確保 Git 可用。

權(quán)限檢查

  • 你的緩存必須可由運行 npm 的用戶讀取和寫入。
  • 運行 npm 的用戶必須可以寫入全局包二進(jìn)制文件。
  • node_modules如果你使用npm doctor項目目錄運行,你的本地路徑必須可由運行 npm 的用戶讀取和寫入。

驗證緩存包的校驗和

發(fā)布 npm 包時,發(fā)布過程會生成一個校驗和,npm 在安裝時使用該校驗和來驗證包在傳輸過程中沒有損壞。npm doctor使用這些校驗和來驗證本地緩存中的包 tarball(您可以使用 來查看該緩存的位置npm config get cache,并查看該緩存中的內(nèi)容npm cache ls- 可能超出您的預(yù)期!)。如果緩存中有損壞的包,您可能應(yīng)該運行npm cache clean并重置緩存。

配置

registry 注冊表

  • 默認(rèn)值:https?:?//registry.npmjs.org/
  • 類型:Url

npm 注冊表的基本 URL。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號