node 包管理工具 : nvm vs fvm
在 macOS 上管理 Node.js 版本,选择合适的工具至关重要。这不仅能让你在不同的项目中使用不同版本的 Node.js,还能避免权限问题,提升开发效率。
目前主流的工具有 nvm、fnm 和 Volta,它们各有侧重,你可以根据自己的需求来选择。
🧰 主流 Node 版本管理工具对比
表格
| 工具 | 核心特点 | 适用场景 |
|---|---|---|
| nvm | 社区最流行,资源最丰富,命令直观。 | 需要广泛社区支持和丰富教程的开发者。 |
| fnm | 基于 Rust 开发,速度极快,支持目录切换时自动切换版本。 | 追求极致性能和自动化体验的开发者。 |
| Volta | 将 Node 和包管理器版本写入 package.json,实现项目级环境自动切换。 |
团队协作,希望统一项目环境,避免“在我机器上是好的”问题。 |
下面为你详细介绍这三种工具的安装和使用方法。
1. NVM (Node Version Manager)
NVM 是目前最流行、最成熟的版本管理工具,拥有庞大的用户基础和丰富的文档。
安装
在终端执行以下命令进行安装:
bash
编辑
1curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
安装完成后,需要重启终端或执行 source ~/.zshrc 让配置生效。
常用命令
-
安装指定版本:
nvm install 18.16.0 -
切换版本:
nvm use 18.16.0 -
查看已安装版本:
nvm list -
设置默认版本:
nvm alias default 18.16.0 -
查看远程所有可用版本:
nvm list-remote
2. FNM (Fast Node Manager)
正如其名,fnm 的最大亮点就是快。它由 Rust 编写,性能远超基于 Shell 脚本的 nvm。它还支持在进入项目目录时自动切换 Node 版本。
安装
bash
编辑
1curl -fsSL https://fnm.vercel.app/install | bash
安装后,请根据终端提示配置环境变量。为了实现自动切换,需要在 ~/.zshrc 中添加 eval "$(fnm env --use-on-cd)"。
常用命令
-
安装指定版本:
fnm install v20.10.0 -
切换版本:
fnm use v20.10.0 -
查看已安装版本:
fnm list -
设置默认版本:
fnm default v20.10.0
3. Volta
Volta 的理念非常独特,它将 Node.js 和包管理器(如 pnpm、yarn)的版本信息直接写入项目的 package.json 文件中。这意味着,任何安装了 Volta 的开发者,在进入项目目录时,都会自动切换到项目指定的环境,非常适合团队协作。
安装
bash
编辑
1curl https://get.volta.sh | bash
常用命令
-
安装 Node.js:
volta install node@18 -
为当前项目锁定版本:
- 进入你的项目目录。
- 执行
volta pin node@18。 - 你会发现
package.json中多了一个volta字段,里面记录了锁定的版本。
💡 国内加速小贴士
由于网络原因,直接安装 Node.js 版本可能会很慢或失败。你可以配置镜像源来加速下载。
-
对于 NVM:
bash
编辑
1export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node/建议将此行添加到
~/.zshrc文件中,使其永久生效。 -
对于 FNM:
bash
编辑
1export FNM_NODE_DIST_MIRROR=https://npmmirror.com/mirrors/node/同样,建议添加到
~/.zshrc文件中。
总结与建议
- 追求稳定和丰富资源:选择 NVM。
- 追求极致速度和自动化:选择 FNM。
- 团队协作,统一环境:选择 Volta。
重要提示:请避免同时使用多个版本管理工具,这可能会导致环境变量冲突,引发意想不到的问题。选择最适合你的一个即可。