You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改rn-pdf-reader-js的peerDependencies适配Expo 47是否可行?

问题解答

能否修改peerDependency范围解决问题?

  • 可以,但手动修改package-lock.json不是长久方案:
    • 直接把package-lock.json里rn-pdf-reader-js@4.1.1的expo peer依赖范围改成>=33.0.x <50.0.x,能暂时消除安装时的兼容性警告,不用每次加--legacy-peer-deps。
    • 但要注意,后续执行npm install或更新依赖时,这个修改可能被覆盖。更可靠的方式是用npm 8.3+支持的overrides字段,在项目根目录的package.json里添加:
"overrides": {
  "rn-pdf-reader-js": {
    "expo": ">=33.0.x <50.0.x"
  }
}

这样npm会自动强制覆盖该包的peer依赖要求,无需手动修改lock文件。

关于“Cannot read properties of null (reading 'children')”报错

  • 这个错误和peer依赖的关联性不大,大概率是依赖缓存损坏或lock文件状态异常导致的:
    • 先执行以下步骤排查:
      1. 删除项目根目录的node_modules文件夹和package-lock.json文件
      2. 清理npm缓存:npm cache clean --force
      3. 重新执行npm install(若未配置overrides,仍需加--legacy-peer-deps)
    • 一般情况下,清理缓存和重新安装就能解决这个报错。

长期方案建议

  • 优先尝试升级rn-pdf-reader-js到最新版本:检查该包的最新版本是否已经更新了Expo peer依赖范围,适配Expo 47及以上版本,从根源解决兼容性问题。
  • 如果升级不可行,就用overrides字段配合npm install,或者继续使用--legacy-peer-deps,毕竟你的项目在Expo Go里运行正常,说明实际功能没有兼容性问题,只是npm的peer依赖校验机制导致的安装警告。

内容的提问来源于stack exchange,提问作者Aatish Parson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 06:35:51