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的其它版本也可以参考进行解决,但如果是由于其它问题导致的报错,则本文章无法提供参考,请注意
文章可能存在个人理解的欠缺,还请各位大佬指点指点,じゃあ!