尝试使用 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\<username>\AppData\Roaming\npm).

因为安装程序将

C:\Program Files (x86)\nodejs

放在

C:\Users\<username>\AppData\Roaming\npm

您的 PATH 上,它将始终使用与 node 一起安装的 npm 版本,而不是使用 npm -g install npm@<version> 安装的 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,并将名为 npmrc 的文件复制到新的 npm 文件夹中,该文件夹应该是 %appdata%\npm\node_modules\npm。这将告诉新的 npm 全局安装的包在哪里。
  • 选项 3

    • 将 npmrc 文件复制回 %ProgramFiles%\nodejs\node_modules\npm

(如果您运行的是 Windows 7 并且没有 %appdata%\npm 目录,请参阅 下面的内容。)

关于内置 Windows 配置的简短说明

Node 安装程序直接安装到 npm 文件夹中,一个特殊的 Windows 特定配置,告诉 npm 在哪里安装全局包。当使用 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 开发的人都知道这个过程很复杂,而且充满挑战,我们正在努力使其变得更简单。敬请关注。