首页 > 解决方案 > 纱线工作区依赖安装位置问题

问题描述

我有一个使用纱线工作区的项目。项目结构如下:

package.json
packages
  - project A
  - project B
  - project C

当我运行yarn install时,包安装在项目根节点模块中。最近我添加了另一个项目(D)并运行了yarn install. 对于项目 D,其中一些依赖项安装在其中,projectD/node_modules因此我在根目录中有一些依赖项,在 projectD 中有一些依赖项,当我运行项目时会导致错误。

无论如何我可以“强制”纱线在根节点模块中安装所有依赖项吗?

标签: yarnpkgyarn-workspaces

解决方案


我自己也遇到过这个问题。听起来您在 projectD 的依赖项和其他项目的依赖项之间存在版本不匹配。您提到的错误可能会确定依赖项是什么(因为我猜它会给出“无法解析模块”错误),否则您可能会发现 projectD 的 node_modules 文件夹中安装的内容会识别它。

一旦确定,我会检查您的 yarn.lock 文件并找出哪些包/s 依赖于不匹配的版本。然后您可能会发现更新具有旧版本的软件包可以解决您的问题,或者您可能决定使用nohoist工作区选项更好

看:

https://dev.to/michalbryxi/share-common-code-with-yarn-workspaces-5g29 https://yarnpkg.com/blog/2018/02/15/nohoist/


推荐阅读