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 的区别的主要内容,如果未能解决你的问题,请参考以下文章