ERROR:This version of pnpm requires at least Node.js vXXX 的解决方案

This version of pnpm requires at least Node.js vXXX 的解决方案

Centos7环境下,pnpm与Node.js版本不兼容导致报错 This version of pnpm requires at least Node.js vXXX 的解决方案

错误原因其实就是 pnpm 的版本不兼容 Node.js 的版本,明白了可以直接跳到解决方案

1 报错原因

1.1 安装pnpm

在安装的时候我们可以看到,已经报了警告说,需要node的版本是要求在18.12版本以上的

复制代码
npm install -g pnpm
1.2 查看Node.js版本

查看自己的node的版本,版本是v16.20.0的,确实不符合当前下载的pnpm的要求

复制代码
node -v
1.3 运行项目

这个时候如果我们无视这个警告,来到项目目录就直接去安装依赖,运行我们的项目的时候,会发生以下报错

复制代码
pnpm install

2 解决方案

解决方案也是比较简单,降低pnpm的版本 或者提高Node.js的版本就可以了

但是又因为如果要提高Node.js的版本的话,看到我这种情况的话需要升级Node.js的版本到v18.12;

而我使用的Centos7安装Node.js的18及以上的版本的时候会报错(原因是:Node.js需要依赖的glibc库和一下其它的库,而这些库版本过低,需要先升级这些库后才能进行安装)

对Centos7安装Node.js的v18以上版本感兴趣的,可以参考这位博主的文章 https://blog.csdn.net/ht3hyc/article/details/137083137

所以如果不是项目本来的依赖就要求Node.js需要更高版本的话,可以采用降低pnpm的版本进行解决

2.1 卸载pnpm

执行下面的命令,没报错应该就卸载成功了,可以使用 "pnpm -v" 确定是否成功卸载

复制代码
npm uninstall -g pnpm
2.2 安装合适版本的pnpm

怎么确定自己的Node.js适配那个版本的pnpm呢?请看下面的参考图(这个在pnpm中文官网上看到的参考图),自己的Node.js对应可以装那个版本就选一个进行安装就行

对pnpm的其它配置感兴趣的可以到官网进行了解,安装 | pnpm 中文网 (nodejs.cn)

我的Node.js版本是 v16.20.0 所以对应可以下载 pnpm7 和 pnpm8,所以我们就安装其中一个版本就行了

为了加快安装,我们最好配置一下npm的镜像源,如果不是npm进行安装的话,就跳过这一步或者查看对应工具怎么配置镜像源

这里将npm的源设置为镜像源的地址

复制代码
npm config set registry https://registry.npmmirror.com/

下面命令用于安装pnpm 7 (如果你需要安装pnpm 8的话 就将 pnpm@7 改成 pnpm@8 就行了)

复制代码
npm install -g pnpm@7

成功后查看pnpm的版本; 如果一直卡住没有进行下载或者下载失败,可以检查一下自己的网络或者进行镜像源的配置

复制代码
pnpm -v
2.3 运行项目

再次测试项目是否能够运行,如果项目本身没有bug且版本依赖也没有问题,下面应该都能正常运行

复制代码
pnpm install
pnpm dev

3 结语

其实这个报错解决很简单,就是我写的有点太详细了,单纯就是 pnpm 与 Node.js 版本不兼容而已,解决方案不会很复杂

Node.js的其它版本也可以参考进行解决,但如果是由于其它问题导致的报错,则本文章无法提供参考,请注意

文章可能存在个人理解的欠缺,还请各位大佬指点指点,じゃあ!

相关推荐
Gogo112113 分钟前
构建高性能 Node.js 集中式日志体系 (下篇):Pino + PM2 + OpenSearch 代码落地实战
node.js
小岛前端21 分钟前
Node.js 宣布重大调整,运行十年的规则要改了!
前端·node.js
前端付豪1 小时前
Nest 项目小实践之前端注册登陆
前端·node.js·nestjs
codingWhat18 小时前
整理「祖传」代码,就是在开发脚手架?
前端·javascript·node.js
ServBay19 小时前
Node.js、Bun 与 Deno,2026 年后端运行时选择指南
node.js·deno·bun
码路飞1 天前
Node.js 中间层我维护了两年,这周终于摊牌了——成本账单算完我人傻了
node.js
None3212 天前
【NestJs】使用Winston+ELK分布式链路追踪日志采集
javascript·node.js
Dilettante2582 天前
这一招让 Node 后端服务启动速度提升 75%!
typescript·node.js
Mr_li3 天前
NestJS 集成 TypeORM 的最优解
node.js·nestjs
UIUV3 天前
node:child_process spawn 模块学习笔记
javascript·后端·node.js