yarn ---- commander@12.0.0: The engine “node“ is incompatible with this module.

1. 报错

commander@12.0.0: The engine "node" is incompatible with this module. Expected version ">=18". Got "16.17.0"

2. 报错场景

拉取一个 gitlab 需要我维护的项目,这个项目使用的 taro 3.2.12 版本。我本地已存在这个版本的项目,然后在执行 yarn install 的时候报错。

3. 分析报错

安装的时候需要使用的 commander 的版本是 12.0.0,而和 commander@12.0.0 相兼容的 node 的版本是 >=18,我当前本地的 node 版本是 16.17.0。也就是说 commander 的版本和 node 的版本不兼容

4. 解决办法

4.1 升级 node

最简单的解决方案是将Node.js版本升级到18或更高版本。您可以从【node 官方网站】下载最新版本(https://nodejs.org/)。安装后,您可以通过在终端中运行“node-v”来检查新版本。

4.2 降级 commander

如果升级 node 不可行,另一种选择是使用与 node 16.17.0兼容的 commander 模块的早期版本。您可以在模块的文档中或通过查看其发行说明找到兼容版本。

4.3 忽略引擎检查
yarn config set ignore-engines true

用于配置 yarn 在安装依赖包时忽略引擎检查。通常,yarn 在安装包时会检查包的引擎版本是否与当前环境相同,如果不同,则会报错。使用这个命令可以忽略这种版本检查,从而避免因为引擎版本不兼容而在安装依赖包时产生的问题。

4.3.1 注意

忽略引擎检查可能会导致一些不可预测的问题,因此在使用这个命令时需要谨慎。例如,即使在 yarn 下载时与node 版本无强关联,如果在打包时 node 版本不正确,也可能会导致打包失败。

5. 总结

  1. 由于我本地已存在当前版本的 taro 项目,因此我可以确认是不会相互影响的,因此我选择了方案三,执行yarn config set ignore-engines true,来忽略引擎检查。
  2. 解决问题的方法很多,找到合适自己的最简单的方法就好。本文只是做个记录,方便以后遇到类似问题查找。
  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rattenking

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值