Node运行出现extract-files导出错误与graphql依赖冲突问题求助
问题解决方法
1. extract-files 包子路径导出报错
该报错是因为项目依赖树中引入的extract-files旧版本没有在package.json的exports字段声明./public/extractFiles路径,Node 12+对模块导出规则校验更严格,因此触发错误。
解决步骤:
- 执行
npm ls extract-files可定位到引入该包的上层依赖 - 强制指定兼容的
extract-files版本即可解决:- 若npm版本≥8.3,在package.json中新增
overrides配置:
{ "overrides": { "extract-files": "^9.0.0" } }- 若npm版本<8.3,使用
resolutions方案实现版本锁定,在package.json中添加如下配置:
{ "resolutions": { "extract-files": "^9.0.0" }, "scripts": { "preinstall": "npx npm-force-resolutions" } } - 若npm版本≥8.3,在package.json中新增
2. npm peer依赖解析报错
npm 7+默认启用严格的peer依赖校验,你项目直接依赖的graphql@15.5.0超出了graphql-postgres-subscriptions@1.0.5声明的支持范围(最高支持graphql 14.x),因此校验不通过,可选择以下任意一种方案解决:
- 方案1:跳过peer依赖校验,执行安装命令时添加参数:
npm install --legacy-peer-deps,实测graphql-postgres-subscriptions@1.0.5可兼容graphql 15.x版本,不会影响正常运行 - 方案2:将项目依赖的graphql版本降到14.x最新版,将package.json中graphql的版本号改为
"graphql": "^14.7.0"后重新安装即可 - 方案3:替换停止维护的
graphql-postgres-subscriptions,改用社区持续维护的高版本graphql兼容替代包@graphile/pg-pubsub,后续迭代更稳定
你可先处理依赖安装问题,依赖安装完成后运行项目如果仍触发第一个报错,再添加对应版本锁定配置即可。
内容的提问来源于stack exchange,提问作者Mina Fawzy
相关产品推荐
相关产品推荐

