pnpm:如何在不同版本中安装相同的依赖项?

tjrkku2a  于 2023-03-30  发布在  其他
关注(0)|答案(1)|浏览(455)

当使用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停止这失败的安装过程.但有没有可能是一个更干净的方式来处理这个问题?

lb3vh1jj

lb3vh1jj1#

我想我已经(重新)解决了这个问题。
PNPM投诉uikit-react

packages/ankhui
└─┬ uikit-react 3.1.3
  ├── x unmet peer react@^17.0.1: found 18.2.0
  └── ✕ unmet peer react-dom@^17.0.1: found 18.2.0

更新:不得不删除我写的错误部分。将尽快更新...
1.)没有必要将版本合并为一个,特别是React 17 vs 18。
2.)您可以手动安装未满足的对等项,一旦软件包作者更新,这些对等项就会得到解决。
3.)无论如何,我想深入研究依赖元,覆盖等。
YPU可以尝试同时使用ypur方法:

// root
rm -rf node_modules

// remove the noise
pnpm store prune

// install now without the noise
pnpm i

这里的链接也为其他人:https://pnpm.io/package_json

相关问题