【问题标题】:A new version of npm has been installed, but the old one is still being used已经安装了新版本的npm,但是老的还在用
【发布时间】:2018-09-05 16:22:57
【问题描述】:

我在为项目安装依赖项时看到了这个:

 Update available 5.7.1 → 5.8.0    │
   │       Run npm i npm to update       

然后我这样做了:

$ npm i npm
npm 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.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.1.3 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

+ npm@5.8.0
added 523 packages from 726 contributors in 12.75s

可是为什么还是老版本呢?

$ npm --version
5.7.1

【问题讨论】:

  • 根据您第一次安装的方式,您应该卸载旧版本并将路径设置为新位置
  • 如果你想使用多个nodejs版本,你应该使用nvm
  • 或者删除旧版本再安装新版本

标签: node.js linux npm


【解决方案1】:

可是为什么还是老版本呢?

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

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


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

npm install --global npm

您可能还想删除本地安装的 npm 以减少臃肿:

npm uninstall npm

有关更新的更多信息,请参阅How can I update Node.js and npm to the next versions?

【讨论】:

    【解决方案2】:

    作为罗伯特贝克回答Here的参考,

    1. 以管理员身份运行 PowerShell
    2. 运行以下代码:

    Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force npm install -g npm-windows-upgrade npm-windows-upgrade

    注意:不要运行npm i -g npm。而是使用 npm-windows-upgrade 来更新 npm。此外,如果您运行 NodeJS 安装程序,它将替换节点版本。

    我能够从 5.6 升级到 6.7(撰写此评论的最新版本)

    【讨论】:

      猜你喜欢
      • 2021-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-21
      • 2022-01-16
      • 2021-12-02
      • 1970-01-01
      • 2012-06-13
      相关资源
      最近更新 更多