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的其它版本也可以参考进行解决,但如果是由于其它问题导致的报错,则本文章无法提供参考,请注意

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

相关推荐
上单带刀不带妹4 小时前
Node.js 中的 fs 模块详解:文件系统操作全掌握
开发语言·javascript·node.js·fs模块
陈陈陈同学2410 小时前
Vercel迁移到Dokploy自部署,每月立省20刀
后端·node.js
yourkin66613 小时前
npm run 常见脚本
前端·npm·node.js
Spider_Man16 小时前
"压"你没商量:性能优化的隐藏彩蛋
javascript·性能优化·node.js
尼丝1 天前
快速写出一个截图网页的爬虫程序
javascript·node.js
树獭叔叔2 天前
深入理解 Node.js 中的原型链
后端·node.js
算了吧2 天前
基于node和playwright的截图服务
前端·node.js
不简说2 天前
有Trae助力1天时间用Node搞了个SSH命令行工具!解放双手~
开源·node.js·命令行
Spider_Man2 天前
别再用Express了!用Node.js原生HTTP模块装逼的正确姿势
前端·http·node.js
Spider_Man2 天前
Node.js 胡编乱造机:让代码帮你写鸡汤,灵感不求人!🧙‍♂️✨
前端·javascript·node.js