当使用pnpm安装软件包时,我得到以下错误:
ERR_PNPM_PEER_DEP_ISSUES Unmet peer dependencies
tinacms
└─┬ @tinacms/toolkit
├─┬ @react-aria/listbox
│ └── ✕ unmet peer react@"^16.8.0 || ^17.0.0-rc.1": found 18.2.0
└─┬ @udecode/plate-headless
└─┬ @udecode/plate-alignment
└─┬ @udecode/plate-core
└─┬ @radix-ui/react-slot
├── ✕ unmet peer react@"^16.8 || ^17.0": found 18.2.0
└─┬ @radix-ui/react-compose-refs
└── ✕ unmet peer react@"^16.8 || ^17.0": found 18.2.0
我已经在项目中使用了react(因此它找到了18.2.0),所以我不能第二次安装它。
我尝试过创建别名,但这对我没有帮助,因为在我的依赖项中,react被导入为react
-无法将其更改为react-latest
或类似。
此字段允许您指示pnpm覆盖依赖关系图中的任何依赖关系。这对于强制所有软件包使用依赖关系的单个版本,backport修复或使用fork替换依赖关系非常有用。
我在package.json
中试过这样做:
"pnpm": {
"overrides": {
"react": "18.2.0"
}
}
我希望这将是一个干净的方式来处理这个问题,但警告仍然显示.似乎我最后的机会是接受它,并添加strict-peer-dependencies=false
到我的.npmrc停止这失败的安装过程.但有没有可能是一个更干净的方式来处理这个问题?
1条答案
按热度按时间lb3vh1jj1#
我想我已经(重新)解决了这个问题。
PNPM投诉
uikit-react
:更新:不得不删除我写的错误部分。将尽快更新...
1.)没有必要将版本合并为一个,特别是React 17 vs 18。
2.)您可以手动安装未满足的对等项,一旦软件包作者更新,这些对等项就会得到解决。
3.)无论如何,我想深入研究依赖元,覆盖等。
YPU可以尝试同时使用ypur方法:
这里的链接也为其他人:https://pnpm.io/package_json