已安装新版本npm,但仍在使用旧版本

Ojr*_*ako 3 linux node.js npm

当我为项目安装依赖项时,我看到了这一点:

\n\n
 Update available 5.7.1 \xe2\x86\x92 5.8.0    \xe2\x94\x82\n   \xe2\x94\x82       Run npm i npm to update       \n
Run Code Online (Sandbox Code Playgroud)\n\n

然后我这样做了:

\n\n
$ npm i npm\nnpm WARN react-hot-api@0.4.7 requires a peer of react@>=0.11.0 || ^0.14.0-rc but none is installed. You must install peer dependencies yourself.\nnpm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.1.3 (node_modules/fsevents):\nnpm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})\n\n+ npm@5.8.0\nadded 523 packages from 726 contributors in 12.75s\n
Run Code Online (Sandbox Code Playgroud)\n\n

但为什么还是旧版本呢?

\n\n
$ npm --version\n5.7.1\n
Run Code Online (Sandbox Code Playgroud)\n

MBl*_*anc 5

但为什么还是旧版本呢?

默认情况下,npm 将包安装在本地node_modules/目录中。由于npm i npm是 的简写npm install npm,它将在本地安装最新版本的 npm。

但是,当npm在 shell 中运行时,shell 会选择npm您的 中的$PATH,这可能是全局安装。


要更新 npm 的全局安装,请运行:

npm install --global npm
Run Code Online (Sandbox Code Playgroud)

您可能还需要删除 npm 的本地安装以减少膨胀:

npm uninstall npm
Run Code Online (Sandbox Code Playgroud)

请参阅如何将 Node.js 和 npm 更新到下一个版本?有关更新的更多信息。