我一直在使用NVM为我的 node 工作安装最新版本的nodeJS.对于安装不同的版本并在它们之间切换,它完全可以正常工作.它还将在每个本地服务器中安装最新版本的NPM/bin文件夹以及 node 二进制文件.然而,似乎没有任何方法可以切换我正在使用的NPM版本(或者至少我搞不清楚).

我能想到的唯一解决方案是删除它默认使用的二进制文件(这是我第一次用NVM安装node时安装的NPM),并在其位置放置最新的NPM二进制文件.然而,我想知道是否有更好的方法来做到这一点.

推荐答案

编辑:自从这个问题在a newer answer年中首次得到回答以来,已经有几年了,现在有了一个命令:

nvm现在有一个更新npm的命令.nvm install-latest-npmnvm install --latest-npm.

nvm install-latest-npm:try 在当前 node 版本上升级到最新的working npm

nvm install --latest-npm:安装后,try 升级到给定 node 版本上的最新工作npm

下面是对这个问题正确答案的先前修订.

在这个问题首次被提出三年后,现在的答案似乎简单多了.只需更新nvm安装的版本,该版本位于~/.nvm/versions/node/[your-version]/lib/node_modules/npm.

我刚刚安装了node 4.2.2,它与npm 2.14.7一起提供,但我想使用npm 3.所以我做到了:

cd ~/.nvm/versions/node/v4.2.2/lib
npm install npm

容易的

是的,这应该适用于任何模块,而不仅仅是npm,对于特定版本的 node 来说,这是"全局的".


编辑1:在最新版本中,npm -g是智能的,将模块安装到上面的路径中,而不是系统全局路径.


感谢@philraj在 comments 中指出这一点.

Node.js相关问答推荐

如何使用MongoDB在Node.js 中向数组中添加项?

设置默认 node 版本

如何呈现ejs.renderFile中包含的子模板?

AWS-ROUTE 53指向S3存储桶,错误是别名目标名称不在目标区域内

编写动态创建的 YAML - 为生态系统创建 Docker compose 文件(使用 js-yaml)

Next.js 路由不起作用 - 页面未正确加载

如何修复我的 NodeJS SSE 写入函数以在后续调用中更新 HTML?

为什么这个 module.export 函数如果我直接传递它就不起作用,但如果我将它包装在一个匿名函数中就可以工作

为什么后端开发需要单独的服务器?

如何从名字,中间名,姓氏中获取全名并在结果中搜索匹配?

在 Express.js 中迭代子文档数组

使用 Node.js 在 MongoDB 中搜索

突然 React 无法执行create-react-app命令.为什么会发生这种情况,我该如何解决?

什么是nestjs错误处理方式(业务逻辑错误vs.http错误)?

如果我使用像 express 这样的 node 服务器,是否需要 webpack-dev-server

容器之间的 Docker HTTP 请求

Node.js 17.0.1 Gatsby 错误-数字信封 routine ::不支持 ... ERR_OSSL_EVP_UNSUPPORTED

使用 Node.js 和 Express 进行简单的 API 调用

从 React(同构应用程序)进行 API 调用时出现Access-Control-Allow-Origin问题

#!/bin/env是什么意思(在 node.js 脚本的顶部)?