lru-cache@10.2.2: The engine “node“ is incompatible with this module.

背景:运行一个前端项目,在yarn install时报错,报错信息如下:

lru-cache@10.2.2: The engine "node" is incompatible with this module. Expected version "14 || >=16.14". Got "16.9.0"
lru-cache@10.2.2:引擎“node”与此模块不兼容。预期版本为“14||>=16.14”。得了“16.9.0”

因为项目在开发时,使用的就是node v16.9.0版本,所以在选择同样的版本进行安装依赖,运行项目。

简单的解决方案

这个问题的解决办法也很简单:
按照提示我们将node版本升级到v 16.14.2

# 安装指定版本的node
nvm insatll 16.14.2
# 查看node版本
node -v
# 如果不是想要的版本
# 查看已经安装的node版本
nvm list
# 使用某一版本
nvm use 版本号
# 重新instal依赖
yarn install

问题成功解决,项目顺利运行!!!

进阶,找到问题原因

但是…………
不能就这样,虽然是小升了一下node的版本,但是尽量不要这样做,容易引发出新的bug
所以我准备找到为什么会出现这个问题。
在开发时node v16.9.0版本下是没有问题的,并没有发生报错。
第一步:怀疑发生问题的依赖,是不是这个依赖包的版本升级了,要求node的版本也变高了。
不过很遗憾,在查看了package.json文件后并没有发现项目有依赖lru-cache@10.2.2
第二步:既然不是直接依赖,那就是依赖的依赖。
查看yarnlock文件,在这里终于发现了lru-cache@10.2.2这个依赖。

path-scurry:"^1.6.1"
	dependencies:
		lru-cache: ^10.2.0

问题就在这个path-scurry上,巧了,这不是直接依赖,还需要继续找

glob@^9.3.3:
	dependencies:
		path-scurry "^1.6.1"

这时发现glob的版本与Git上的版本不一致,globs 是@^8.0.3:不需要依赖 path-scurry,但是glob也不在package.json文件里。

babel-plugin-module-resolver@^5.0.0:
	version "5.0.2"
	dependencies:
		glob "^9.3.3"

babel-plugin-module-resolve出现在了package.json文件里。

"devDependencies": {
	"babel-plugin-module-resolver": "^5.0.0",
}

问题就在这里。
Git服务器上的yarn.lock文件是这样的。

babel-plugin-module-resolver@^5.0.0:
	version "5.0.0"
	dependencies:
		glob "^8.0.3"

这个时间节点下,babel-plugin-module-resolver的默认版本从v 5.0.0变成了v 5.0.2。这一变动导致子依赖的版本变动。
现在可以彻底解决这个问题,在package.json文件里,把"babel-plugin-module-resolver": "^5.0.0",锁定babel-plugin-module-resolver的版本。

"devDependencies": {
	"babel-plugin-module-resolver": "5.0.0",
}

最后,yarn install,成功解决。

从官网上追根溯源

我们去npm的官网看一下
babel-plugin-module-resolver中依赖的是"glob": "^8.0.3",

在这里插入图片描述
再来看一下"glob": "8.0.3",
在这里插入图片描述
这里我们可以看到并没有依赖path-scurry:"^1.6.1"这个依赖包。
我们看一下babel-plugin-module-resolver当前的最新版本,这里可以看出最新版本号是5.0.2,所以我们在yarn install 或者npm install时,安装了5.0.2版本
在这里插入图片描述
在这里插入图片描述
从上图可以看出,babel-plugin-module-resolver:5.0.2依赖了"glob": "^9.3.3",
在这里插入图片描述
glob": "^9.3.3"中需要依赖path-scurry
在这里插入图片描述
我们从path-scurry中可以看出,依赖了我们的报错依赖包lru-cache
那么我们看一下lru-cache官网上的代码文件

在这里插入图片描述

在这里插入图片描述
这里就可以对应上我们的报错信息了

lru-cache@10.2.2: The engine "node" is incompatible with this module. Expected version "14 || >=16.14". Got "16.9.0"
引用\[2\]中提到的报错信息是"Error: Cannot find module 'cache-loader'",而不是"Error: Cannot find module 'lru-cache'"。根据提供的引用内容,没有提到"lru-cache"模块的相关信息。因此,我无法提供关于"Error: Cannot find module 'lru-cache'"的具体解决方法。请确认您提供的引用内容是否正确,并提供更多相关信息,以便我能够为您提供准确的答案。 #### 引用[.reference_title] - *1* [RoboWare Viewer安装可能出现的问题](https://blog.csdn.net/weixin_30815427/article/details/96335661)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [解决 ERROR Error: Cannot find modulecache-loader‘ 报错问题](https://blog.csdn.net/m0_52685922/article/details/131010792)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Syntax Error: Error: Cannot find modulecache-loader](https://blog.csdn.net/qq_36350532/article/details/121335373)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值