Node.js 版本兼容问题:minimatch@10.0.3和minio@7.0.28 冲突的解决

我们在构架项目时候,经常会遇到依赖包因当前 Node.js 环境不兼容的问题。比如像我当前的项目,是使用公司开发的框架的写的,要求install安装依赖包必须使用node18环境,然后run start使用node16环境运行。所以没办法,只能使用node18来install依赖包,但是这个minimatch在node18下不适配,安装失败。

javascript 复制代码
error minimatch@10.0.3: The engine "node" is incompatible with this module.
Expected version "20 || >=22". Got "18.20.5"

error minio@7.0.28: The engine "node" is incompatible with this module. 
Expected version ">8  <=18". Got "22.16.0"

最终果断选择降低minimatch@10.0.3的版本,降到了"minimatch": "9.0.5"。

javascript 复制代码
package.json中的resolutions对象里面
  "resolutions": {
    "@terrestris/base-util": "1.0.1",
    "@terrestris/ol-util": "10.2.0",
    "@terrestris/react-geo": "22.4.0",
    "commander": "12.0.0",
    "minimatch": "9.0.5"
  },

yarn 就会强制所有依赖链中对 minimatch 的使用都是 9.0.5这个版本。

如果你使用的npm,需要你这么做:

javascript 复制代码
npm install npm-force-resolutions --save-dev

然后,在 package.json 中添加一个预安装脚本和 resolutions 配置:

javascript 复制代码
package.json文件
  "scripts": {
    "preinstall": "npx npm-force-resolutions"
  },
  "resolutions": {
    "minimatch": "9.0.5"
  }

如果 npm 大于 8.3 可以利用 overrides 直接指定依赖包应该使用的版本:

javascript 复制代码
package.json文件
  "overrides": {
    "minimatch": "9.0.5"
  }

想要看更详细的可以去看这个博主:解决 Node.js 版本不兼容问题:设置 resolutions 强制使用兼容版本的 minimatch。error minimatch@10.0.3: The engine "node"...._minimatch包作用-CSDN博客

相关推荐
星辰徐哥5 小时前
本地视频预览别只自己看:把Remotion动效项目发给客户远程验收
docker·ai·node.js·html·音视频·react·remotion
ID34610744208 小时前
【课程设计】基于Spring Boot+Vue的校园共享无人机服务系统设计与实现-计算机毕设 附源码44219
javascript·vue.js·spring boot·python·node.js·php·课程设计
敲敲敲敲暴你脑袋14 小时前
地图瓦片批量改色来啦!
node.js·gis·数据可视化
太子釢1 天前
AI 开发个人记账 App(服务端篇)
node.js·ai编程
用户64340495148512 天前
Elpis 项目构建工具与前端基建实践总结
node.js
FungLeo2 天前
成为全栈·Node 后端篇·后端测试策略:单元、集成与测试数据库
单元测试·node.js·集成测试·测试策略·成为全栈·测试数据库
FungLeo2 天前
成为全栈·Node 后端篇·评论内容安全:敏感词过滤、三态审核与级联删除
node.js·敏感词过滤·成为全栈·评论内容安全·评论审核·级联删除
FungLeo2 天前
成为全栈·Node 后端篇·阅读量防刷:去重、冷却与计数写分离
node.js·读写分离·数据去重·接口防刷·成为全栈·数据冷却
脉动数据行情13 天前
Node.js WebSocket 实现贵金属实时行情监听 伦敦金 / 伦敦银自动重连方案
websocket·node.js·vim
不老刘3 天前
一行命令解决 Node.js 版本兼容问题:`--openssl-legacy-provider` 深度解析
node.js