CentOS 7安装connect-sqlite3出现弃用告警,升级node-pre-gyp仍未解决求助
问题原因
你安装的connect-sqlite3包自身的依赖声明绑定了旧版非作用域的node-pre-gyp@0.11.0,单独在项目顶层安装新版@mapbox/node-pre-gyp只会新增顶层依赖,不会修改connect-sqlite3的内部依赖版本,因此告警会持续触发。同时旧版node-pre-gyp依赖了不再维护的tar@2.2.2,也会连带触发tar的弃用告警。
解决方法
方案一:使用npm overrides强制替换子依赖版本(推荐,适配npm 8.3.0及以上版本)
- 在项目根目录的
package.json文件中添加如下配置:
{ "overrides": { "connect-sqlite3": { "node-pre-gyp": "npm:@mapbox/node-pre-gyp@latest", "tar": "^6.0.0" } } }- 清空缓存后重新安装依赖:
npm cache clean --force rm -rf node_modules package-lock.json npm install- 在项目根目录的
方案二:直接忽略告警
此类弃用告警仅为提示性质,不会阻断依赖安装和项目正常运行,若当前业务不受影响可直接忽略,后续connect-sqlite3官方更新依赖后告警会自动消失。方案三:自定义修改依赖包
若有特殊需求,可forkconnect-sqlite3的源码仓库,将其内部依赖中的node-pre-gyp替换为@mapbox/node-pre-gyp,修改完成后安装自己维护的分支版本即可。
内容的提问来源于stack exchange,提问作者Inne Friharyanti
相关产品推荐
相关产品推荐

