Nodejs 环境| 版本
Node.js 有两个主要的发布版本:
- Current (当前版本): 最新的功能版本,可能包含新特性和改进,但不保证长期稳定性。
- LTS (长期支持版本): 经过充分测试并得到长期支持,适合生产环境使用,通常每个 LTS 版本会在发布后的 30 个月内收到更新和支持。
brew 默认是 Current ,推荐使用 LTS ,一般是 Current 版本号减二或者减二(LTS都是偶数版本)
sh
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),并且如果必要,会自动下载指定版本的这些包管理器。
Corepack 在 Node@25 被移除,需要手动安装
pnpm 支持全局 Node.js 版本管理
查看版本
bash
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文件:
ini
use-node-version=23.11.0- 或者在
pnpm-workspace.yaml中指定
yaml
useNodeVersion: 23.11.0执行 pnpm init会自动为该项目下载对应版本的 Node,仅在执行 pnpm script 命令时使用该版本。
例如:
json
"scripts": {
"nodeversion": "node -v",
"dev": "node dev.js"
}执行以下命令时将使用 .npmrc 指定的 Node:
bash
pnpm nodeversion # 输出 23.11.0
pnpm dev # 运行时使用 23.11.0而全局的 node 命令仍使用系统默认版本,不受影响。
注意事项
.npmrc中的use-node-version是 pnpm 自行支持的字段,不属于标准 npm 配置。- 仅
pnpm run和pnpm <script>命令会使用该 Node 版本。 - 不会自动切换 shell 中的
node,如需自动切换请使用fnm或volta。 - 参考: How to manage multiple nodejs versions with pnpm?