嘗試使用最新穩定版本的 npm

查看您正在執行哪個版本的 npm

npm -v

*nix (OSX、Linux 等) 上升級

(您可能需要在這些指令前加上 sudo,特別是在 Linux 或 OS X 上,如果您使用其預設安裝程式安裝 Node 的話。)

您可以使用下列指令升級至最新版本的 npm

npm install -g npm@latest

在 Windows 上升級

預設情況下,npm 會與 node 一起安裝在

C:\Program Files (x86)\nodejs

npm 全域安裝的套件 (包括 npm 本身) 會另外儲存在使用者特定的目錄中 (目前為

C:\Users\<使用者名稱>\AppData\Roaming\npm).

因為安裝程式會將

C:\Program Files (x86)\nodejs

置於

C:\Users\<使用者名稱>\AppData\Roaming\npm

在您的 PATH 之前,因此它將始終使用隨 node 安裝的 npm 版本,而不是您使用 npm -g install npm@<版本> 安裝的 npm 版本。

為了解決此問題,您可以執行下列其中一項操作

  • 選項 1:編輯您的 Windows 安裝的 PATH,將 %appdata%\npm 置於 %ProgramFiles%\nodejs 之前。請記住,當您對 PATH 或 npm 安裝方式進行變更時,您需要重新啟動 cmd.exe(並可能重新啟動 Windows)。

  • 選項 2:移除下列兩個

    • %ProgramFiles%\nodejs\npm
    • %ProgramFiles%\nodejs\npm.cmd
  • 選項 3:導覽至 %ProgramFiles%\nodejs\node_modules\npm 並將 npmrc 檔案複製至另一個資料夾或桌面。然後以管理員身分開啟 cmd.exe 並執行下列指令

cd %ProgramFiles%\nodejs
npm install npm@latest

如果您使用 node.js 安裝程式安裝 npm,在執行前述步驟之一後,請執行下列動作。

  • 選項 1 或 2

    • 進入 %ProgramFiles%\nodejs\node_modules\npm 並複製新 npm 資料夾中的名為 npmrc 的檔案,該資料夾應為 %appdata%\npm\node_modules\npm。這將告訴新的 npm 全域安裝的套件在哪裡。
  • 選項 3

    • 將 npmrc 檔案複製回 %ProgramFiles%\nodejs\node_modules\npm

(如果您使用的是 Windows 7 且沒有 %appdata%\npm 目錄,請參閱以下重點。)

關於內建 Windows 組態的簡要說明

Node 安裝程式會直接安裝到 npm 資料夾中,其中包含一項 Windows 特定的設定,用來告知 npm 安裝全域套件的位置。當 npm 用於安裝自身時,它應該會將這個特殊的 builtin 設定複製到新的安裝中。在某些版本的 npm 中存在一個錯誤,導致此功能無法正常運作,因此您可能需要手動進行修復。執行下列指令,查看 npm 將安裝全域套件的位置,以驗證是否正確。

npm config get prefix -g

如果未設定為 <X>:\Users\<user>\AppData\Roaming\npm,您可以執行下列指令進行修正

npm config set prefix %APPDATA%\npm -g

順帶一提,如果您不希望套件安裝到您的漫遊設定檔(因為您在共用網路中具有配額,或會導致從網域登入或登出時速度變慢),您可以將其改為安裝到您的本機應用程式資料中

npm config set prefix %LOCALAPPDATA%\npm -g

...並將 %APPDATA%\npm 複製到 %LOCALAPPDATA%\npm(當然,還要更新您的 %PATH%)。

所有在 npm 上工作的人都知道這個程序很複雜且充滿風險,我們正在努力簡化它。敬請期待。

在 GitHub 上編輯此頁面
5 位貢獻者lukekarrysMylesBorinsfritzyjoshbmairethomson
上次編輯者為 lukekarrys,時間為 2023 年 10 月 23 日