記錄

我們記錄的原因、內容和方式

選擇 CLI 版本

說明

npm CLI 有各種機制,可針對特定指令、組態和環境向最終使用者顯示不同層級的資訊。

設定日誌檔位置

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

記錄目錄的預設位置是 npm 快取中的 _logs 目錄。這可以使用 logs-dir 組態選項進行變更。

例如,如果您想將所有記錄寫入目前的作業目錄,您可以執行:npm install --logs-dir=.。這在偵錯特定 npm 問題時特別有用,因為您可以使用不同的組態值執行指令多次,然後對所有記錄檔執行 diff。

當記錄檔數量超過 logs-max 時,記錄檔會從 logs-dir 中移除,最舊的記錄會先刪除。

若要完全關閉記錄,請設定 --logs-max=0

設定日誌層級

loglevel

loglevel 是可以設定的全球引數/組態,用於決定要顯示的資訊類型。

loglevel 的預設值為 "notice",但有許多層級/類型的記錄可用,包括

  • "silent"
  • "error"
  • "warn"
  • "notice"
  • "http"
  • "info"
  • "verbose"
  • "silly"

會顯示所有屬於目前設定之前層級的記錄。

別名

上面列出的記錄層級有許多對應的別名,包括

  • -d: --loglevel info
  • --dd: --loglevel verbose
  • --verbose: --loglevel verbose
  • --ddd: --loglevel silly
  • -q: --loglevel warn
  • --quiet: --loglevel warn
  • -s: --loglevel silent
  • --silent: --loglevel silent

foreground-scripts

v7 開始,npm CLI 開始隱藏 npm install 的生命週期腳本輸出。特別是,這表示您不會看到使用「安裝腳本」顯示資訊給您的套件,或您在 package.json 中定義的專案腳本的記錄/輸出。如果您想變更此行為並記錄此輸出,您可以將 foreground-scripts 設為 true

計時資訊

--timing 設定可以設定,它會執行一些事情

  1. 不論命令結束狀態如何,總是顯示除錯記錄的完整路徑
  2. 將計時資訊寫入快取或 logs-dir 中的特定於程式的計時檔案
  3. 將計時資訊輸出至終端機

此檔案包含一個 timers 物件,其中鍵是計時處理程序部分的識別碼,而值是完成所需的時間(毫秒)。

有時,在不輸出任何內容至終端機的情況下取得計時資訊會很有幫助。例如,效能可能會受到寫入終端機的影響。在這種情況下,您可以使用 --timing --silent,它仍會寫入計時檔案,但不會在執行時輸出任何內容至終端機。

登錄回應標頭

npm-notice

npm CLI 會從設定的登錄檔傳回的任何 npm-notice 標頭中讀取並記錄。當發生依賴網路的請求時,第三方登錄檔可以使用此機制提供有用的資訊。

此標頭未快取,如果請求是由快取提供,則不會記錄。

日誌和敏感資訊

npm CLI 會盡力從終端機輸出和記錄檔中刪除以下內容

  • 基本驗證 URL 中的密碼
  • npm 令牌

但是,不應依賴此行為來刪除所有可能的敏感資訊。如果您擔心記錄檔或終端機輸出中的機密,您可以使用 --loglevel=silent--logs-max=0 來確保沒有記錄寫入您的終端機或檔案系統。

另請參閱