NPM 和 NVM 的区别

Posted

技术标签:

【中文标题】NPM 和 NVM 的区别【英文标题】:Difference between NPM and NVM 【发布时间】:2015-12-16 03:11:12 【问题描述】:

我知道 npm 是包管理器,而 nvm 是节点版本管理器。我目前正在尝试使用 Bash 自动安装我的开发和生产环境,但忘记了我是如何开始的以及以什么顺序开始的。安装npm后,发现我们的nvm没有安装。

我还需要安装 nvm 吗?如果有,有什么好处?

【问题讨论】:

nvm 安装安装 npm 的 Node。如果您不需要/不想在 Node 版本之间切换,那么您可能不需要 nvm。 【参考方案1】:

nvm (Node Version Manager) 是一个允许您下载和安装 Node.js 的工具。检查您是否通过nvm --version 安装了它。

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.26.1/install.sh | bash

npm(节点包管理器)是一个允许您安装 javascript 包的工具。检查您是否通过npm --version 安装了它。

npm 带有 Node.js,因此如果您安装了节点 (node --version),您很可能也安装了 npm

您不需要nvm,除非您想在系统上安装多个版本的 Node.js,或者您想升级当前版本。

【讨论】:

这意味着我可以使用 nvm install watchman 而不是 npm install watchman 因为我不想更改 npm 版本 @JokerFan 这并不完全正确。你不能运行nvm install watchman。当您将 node 的版本更改为 nvm 时,npm 的版本也会发生变化。 系统上有多个版本的 Node.js 有意义吗? @AjayS 你可能在两个独立的项目上工作,这些项​​目有非常具体的节点版本要求,这对于承包商来说很常见。【参考方案2】:

如您所说,nvm 是一个“活动的”nodejs 版本管理器。您可以在同一台机器上拥有多个版本的节点并通过执行“nvm 使用版本”进行切换。如果机器上存在 npm,则 npm 尊重 nvm,这意味着如果您有 0.12.7 活动并执行 npm install -g uuid,它将在 0.12.7 下全局安装它,但如果您切换到 4.0.0,uuid 将不再是全球可用。

在任何情况下,您都不一定需要 nvm 来安装软件包。

【讨论】:

nvm默认是哪个版本的? @JohnTheBeloved:没有。默认情况下,nvm 指向您的操作系统版本。 @FelixKling 是对的。您可以执行“nvm ls”来查看 nvm 使用的版本,也可以执行“node -v”来查看当前活动的节点。

以上是关于NPM 和 NVM 的区别的主要内容,如果未能解决你的问题,请参考以下文章

nvmnodenpm安装以及pycharm配置eslint

nvm切换node不生效

装nvm切换node遇到的坑

mac终端当作git用了 nvm用不了了怎么办

node ,npm和nvm 版本的管理

设置 nvm 以正确使用 npm 和 grunt