Node.js 版本管理工具 nvm 与 n 对比及环境变量配置详解

作者:服务小站时间:2026-10-29 15:31:38浏览:472

本文详细介绍 Node.js 版本管理工具 nvm 和 n 的安装与使用。重点讲解通过 Homebrew 安装 nvm 后,如何在 bash 或 zsh 中配置环境变量以解决重启终端后 node 和 npm 失效的问题,并对比 nvm 与 n 的适用场景。

Node.js 版本管理工具概述

本文主要涵盖两个核心内容。

第一部分是关于在 Node.js 环境中使用 nvm 或 n 进行版本控制;第二部分是解决 nvm 安装 Node.js 版本后,重启终端导致 node 和 npm 环境变量失效的问题。

首先讨论如何选择 Node.js 的版本管理工具。

值得庆幸的是,Node.js 终于发布了具有里程碑意义的正式版本 1.0。尽管目前我们看到的是 V4.0,但这实际上是 Node.js 真正意义上的 1.0 版本,io.js 也圆满完成了它的历史使命。

回顾近年来 Node.js 以及 io.js 的快速发展和频繁的版本迭代,我们有必要使用一个 Node.js 版本管理工具来控制当前系统中的 Node.js 版本。

为什么要进行版本管理?

新版本中采用了最新的 V8 引擎,ES 6 的所有新特性得以充分展现,这确实令人兴奋。然而,如果盲目升级,首先面临的是开发环境与线上发布环境不一致的问题,由此引发的后果不言而喻,一旦出现问题,可能面临严重的责任。其次,之前的一些开源包可能需要重新编译,特别是那些用 C++ 编写的模块。

因此,你需要一个 Node.js 版本管理软件。

nvm 安装与环境变量配置

目前流行的 Node.js 版本管理工具有哪些?

nvm

我们可以使用 brew 来安装 nvm。


brew install nvm

这里需要特别注意:使用 brew 安装后,务必在 bash 或 zsh 的配置文件中设置相关路径,否则当你重新启动终端时,会发现 node 和 npm 的环境变量失效。

在此穿插说明我们要分享的第二个话题:nvm 重启后终端中 node 和 npm 失效的解决方案。

如果你采用了上述 brew 的安装方法,安装成功后,请按照以下步骤设置你的 shell 配置文件。


brew info nvm

你将看到如下的输出帮助信息。


nvm: stable 0.26.1 (bottled), HEAD
Manage multiple Node.js versions
https://github.com/creationix/nvm
/usr/local/Cellar/nvm/0.26.1 (3173 files, 56M) *
 Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/nvm.rb
==> Caveats
Add NVM's working directory to your $HOME path (if it doesn't exist):

 mkdir ~/.nvm

Copy nvm-exec to NVM's working directory

 cp $(brew --prefix nvm)/nvm-exec ~/.nvm/

Add the following to $HOME/.bashrc, $HOME/.zshrc, or your shell's
equivalent configuration file:

 export NVM_DIR=~/.nvm
 source $(brew --prefix nvm)/nvm.sh

Type `nvm help` for further information.

Bash completion has been installed to:
 /usr/local/etc/bash_completion.d

我们需要按照上述提供的方法,首先在用户主目录下创建 .nvm 文件。


mkdir ~/.nvm

然后将 nvm-exec 文件拷贝到你刚才新建的 .nvm 目录下。


cp $(brew --prefix nvm)/nvm-exec ~/.nvm/

接着编辑你的 bash 配置文件 $HOME/.bashrc,如果你使用 zsh,则编辑 $HOME/.zshrc 配置文件。


nano ~/.bashrc

或者


nano ~/.zshrc

将以下内容粘贴进去。


export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh

最后,让你的 shell 配置立即生效。


source ~/.bashrc

或者


`source ~/.zshrc'

这样,你就不会再出现关闭终端重启,或者重启机器后发现 node、npm 等系统环境变量失效的问题了。

nvm 与 n 的区别及使用建议

nvm 和 n 的区别。

nvm 类似于 Python 的 virtualenv 或者 Ruby 的 rvm,它是一个独立安装的软件。n 其实是一个 npm 全局的开源包,需要使用 npm 来全局安装。n 更加轻巧,但是 nvm 更加独立。

假如你有一台新电脑,如果你想使用版本管理,那么 nvm 是你的选择,因为它是一个独立的软件,安装后你可以随意下载并切换你需要的版本。

但是 n 是依赖在 npm 下的一个包,也就是说,如果你的电脑环境还没有 Node.js / npm,你还无法使用 n。因此,在使用时,大家可以针对自己的情况权衡。我本人使用 nvm 来控制 Node 版本。

nvm 常用命令与 n 的安装使用

nvm 的使用。

查看可以安装的版本。


nvm ls-remote

查看已经安装的版本。


nvm ls

安装一个指定的版本。


nvm install <version>

上面的 version 可以指定你在 nvm ls-remote 里面列出来的版本号即可。

删除指定版本。


nvm use <version>

n 的安装。


npm install -g n

当然,你还可以去 github 下载你的源代码自己本地编译。


$ git clone https://github.com/visionmedia/n.git
$ cd n
$ [sudo] make install
n 安装指定版本
n stable/laster/< version>

在 n 后面更一个标识 stable 标识最新稳定版, laster 标识最新版 ,<version> 就是你可以具体指定一个版本号


n 使用一个版本
n use <version>

n 删除一个版本
n rm <version>

作者最新文章