为什么 Yarn 会修改对等依赖项中的包版本?

问题描述

我正在试用 Yarn V2,并将一个工作区中的一个依赖项放入 peerDependency 部分。但是无论我写什么版本,Yarn 总是将依赖的版本修改*。像这样:

package.json(之前)

{ "peerDependencies": { "packageA": "workspace:^0.0.1" } }

package.json(之后)

{ "peerDependencies": { "packageA": "*" } }

其中 packageA 是由 monorepo 管理的另一个本地工作区。 * 不是意味着任何版本都会满足吗?如果这是已知的 Yarn 功能,我如何在对等依赖项中指定版本?

解决方法

如果您需要在当前依赖项中使用另一个工作区依赖项,则需要像这样在 devDependencies 部分中指定它

{ "devDependencies": { "packageA": "workspace:^0.0.1" } }