如何查看pnpm使用的Node版本?解决ERR_PNPM_UNSUPPORTED_ENGINE报错
问题核心
在Windows 10的Git Bash环境中,明明当前Node版本是v20.10.0,且已安装v18.19.0、v20.10.0、v21.6.0,执行pnpm install却报错提示Node v18.5.0不符合dependency-cruiser@16.0.0的版本要求(^18.17||>=20),删除pnpm-lock.yaml后首次安装成功,再次执行又触发相同错误。
排查与解决步骤
第一步:确认Git Bash环境的Node版本与路径
在Git Bash中执行以下命令,验证当前生效的Node版本:node -v which node若输出的版本不是v20.10.0,说明Git Bash加载的Node环境与PowerShell不一致(比如nvm版本切换未在Git Bash中生效)。如果用nvm管理版本,执行
nvm use 20.10.0,再执行nvm alias default 20.10.0设为默认版本,避免每次启动Git Bash都要切换。第二步:检查pnpm的Node版本配置
pnpm有独立的环境版本管理机制,执行以下命令查看pnpm当前关联的Node版本:pnpm env list如果列表中存在v18.5.0且被设为默认,执行以下命令切换到v20.10.0:
pnpm env use 20.10.0第三步:清理pnpm缓存与残留文件
缓存中的旧版本关联信息可能导致报错,执行以下命令彻底清理:pnpm store prune rm -rf node_modules pnpm-lock.yaml之后重新执行
pnpm install,观察是否仍报错。第四步:检查Git Bash启动配置文件
打开Git Bash的~/.bashrc或~/.bash_profile文件,查看是否有强制指定Node版本或修改NODE_PATH的脚本,比如误写了export NODE_PATH=/path/to/node/v18.5.0,若有则删除或修改为正确版本路径。第五步:验证环境一致性
执行以下命令查看环境变量中的Node相关路径,确保没有冲突:echo $PATH echo $NODE_VERSION确保输出的路径中,v20.10.0的Node目录排在最前面,避免旧版本路径优先级更高。
内容的提问来源于stack exchange,提问作者Martin Boucher

