Mac Nodejs 环境配置 | Node 版本切换Page Cover
Mac Nodejs 环境配置 | Node 版本切换
April 5th 20253 min read508 words

Node.js 有两个主要的发布版本:

  1. Current (当前版本): 最新的功能版本,可能包含新特性和改进,但不保证长期稳定性。
  2. LTS (长期支持版本): 经过充分测试并得到长期支持,适合生产环境使用,通常每个 LTS 版本会在发布后的 30 个月内收到更新和支持。

brew 默认是 Current ,推荐使用 LTS ,一般是 Current 版本号减二

brew install node@LTS brew link node@LTS brew unlink node@20 corepack enable

从 Node.js v16.9.0 开始,Corepack 已经预装在 Node.js 发行版中。启用后会确保 Corepack 能够拦截对应的包管理器命令(npm, Yarn, pnpm),并且如果必要,会自动下载指定版本的这些包管理器。

pnpm 支持全局 Node.js 版本管理

查看版本

pnpm env list # 查看本地已安装的 Node 版本 pnpm env list --remote # 查看可用的远程 Node 版本 pnpm env use --global 22 # 安装并切换到 Node 22 最新小版本 pnpm env use --global lts # 安装并切换到最新 LTS 版本 pnpm env use --global latest # 安装最新版本 pnpm env remove --global 14.0.0

安装位置在:~/.local/share/pnpm/nodejs/ ($PNPM_HOME/nodejs/)

项目级指定 Node 版本(非全局切换)

项目目录下创建 .npmrc 文件:

use-node-version=23.11.0

或者在 pnpm-workspace.yaml 中指定

useNodeVersion: 23.11.0

执行 pnpm init会自动为该项目下载对应版本的 Node,仅在执行 pnpm script 命令时使用该版本。

例如:

"scripts": { "version": "node -v", "dev": "node dev.js" }

执行以下命令时将使用 .npmrc 指定的 Node:

pnpm version # 输出 23.11.0 pnpm dev # 运行时使用 23.11.0

而全局的 node 命令仍使用系统默认版本,不受影响。

注意事项

  • .npmrc 中的 use-node-version 是 pnpm 自行支持的字段,不属于标准 npm 配置。
  • pnpm runpnpm <script> 命令会使用该 Node 版本。
  • 不会自动切换 shell 中的 node,如需自动切换请使用 fnmvolta
  • 参考: How to manage multiple nodejs versions with pnpm?

end