npm

javascript 套件管理員

選擇 CLI 版本

摘要

npm

注意:此指令不知道工作區。

版本

10.5.2

說明

npm 是 Node JavaScript 平台的套件管理員。它將模組放在適當的位置,以便 node 可以找到它們,並以智慧的方式管理相依性衝突。

它高度可組態,以支援各種使用案例。最常見的用途是發布、尋找、安裝和開發 node 程式。

執行 npm help 以取得可用指令清單。

重要

npm 預設設定為使用 npm 的公開註冊表,網址為 https://registry.npmjs.org。使用 npm 公開註冊表須遵守使用條款,網址為 https://npm-docs.dev.org.tw/policies/terms

您可以設定 npm 使用任何相容的註冊表,甚至執行自己的註冊表。使用他人的註冊表須遵守其使用條款。

簡介

您取得 npm 的原因可能是要安裝某些東西。

在任何節點程式中,您最有可能會執行的第一件事就是 npm install,以安裝其相依性。

您也可以執行 npm install blerg 來安裝「blerg」的最新版本。請參閱 npm install 以取得更多資訊。它可以執行許多工作。

使用 npm search 指令顯示公開註冊表中所有可用的內容。使用 npm ls 顯示您已安裝的所有內容。

相依性

如果套件使用 git URL 列出相依性,npm 會使用 git 指令安裝該相依性,如果未安裝,將會產生錯誤。

如果 npm 嘗試安裝的其中一個套件是原生節點模組,且需要編譯 C++ 程式碼,npm 會使用 node-gyp 執行該工作。對於 Unix 系統,node-gyp 需要 Python、make 和建置鏈,例如 GCC。在 Windows 上,需要 Python 和 Microsoft Visual Studio C++。如需更多資訊,請參閱 node-gyp 儲存庫node-gyp Wiki

目錄

請參閱 folders 以了解 npm 放置內容的位置。

特別是,npm 有兩種操作模式

  • 本機模式:npm 將套件安裝到目前的專案目錄中,預設為目前的作業目錄。套件安裝到 ./node_modules,而 bin 安裝到 ./node_modules/.bin
  • 全域模式:npm 將套件安裝至安裝前置詞中的 $npm_config_prefix/lib/node_modules,並將 bin 檔案安裝至 $npm_config_prefix/bin

預設為區域模式。在任何命令上使用 -g--global 以改為執行全域模式。

開發人員使用

如果您使用 npm 來開發和發布您的程式碼,請查看以下說明主題

  • json:建立 package.json 檔案。請參閱 package.json
  • link:將您目前的工作程式碼連結至 Node 的路徑,這樣您就不必每次進行變更時都重新安裝。使用 npm link 來執行此操作。
  • install:如果您不需要符號連結,安裝程式碼會是一個好主意。特別是,透過 npm install 從註冊表中安裝其他人的程式碼。
  • adduser:建立帳戶或登入。當您執行此操作時,npm 會將憑證儲存在使用者設定檔中。
  • publish:使用 npm publish 命令將您的程式碼上傳至註冊表。

組態

npm 具有極高的可設定性。它會從 5 個位置讀取其設定選項。

  • 命令列開關:使用 --key val 設定設定。所有金鑰都會取用一個值,即使它們是布林值(設定剖析器在剖析時並不知道這些選項)。如果您未提供值 (--key),則該選項會設定為布林值 true
  • 環境變數:透過在環境變數中加上 npm_config_ 前置詞來設定任何設定。例如,export npm_config_key=val
  • 使用者設定檔:位於 $HOME/.npmrc 的檔案是設定的 ini 格式清單。如果存在,它會被剖析。如果在 cli 或 env 中設定了 userconfig 選項,則會改用該檔案。
  • 全域設定檔:如果找到位於 ./etc/npmrc(相對於全域前置詞)的檔案,它會被剖析。請參閱 npm prefix 以取得有關全域前置詞的更多資訊。如果在 cli、env 或使用者設定檔中設定了 globalconfig 選項,則會改用剖析該檔案。
  • 預設值:npm 的預設設定選項定義在 lib/utils/config/definitions.js 中。這些值不得變更。

請參閱 config 以取得更多資訊。

貢獻

歡迎提供程式碼補丁!

如果您想幫忙,但不知道要從何做起,請閱讀 貢獻指南 並查看問題清單。

錯誤

當您發現問題時,請回報: https://github.com/npm/cli/issues

請務必遵循範本和錯誤回報指南。

功能要求

在我們的討論論壇討論新功能點子

或建議正式的 RFC 提案

另請參閱