如何避免使用Yarn在Monorepo中安装软件包


10

我使用LernaYarn工作区构建了一个monorepo 。

一切正常,但是每次我使用以下方法在程序包上安装新的依赖项时(我们称其为A):

yarn add <package_name>

Yarn添加它,然后触发installmonorepo中所有软件包的脚本,甚至是A不依赖的软件包。

无论如何要避免这种情况?完全无需花费一些时间即可安装它们。


所以您同时使用了Lerna和Yarn软件包?为什么不只是Lerna?另外,您是否尝试过使用Lerna添加软件包并设置范围?github.com/lerna/lerna/tree/master/commands/add
kbariotis

我使用Lerna发布和版本化我的软件包和Yarn工作区,以轻松管理依赖关系。我尝试了您的建议,但没有成功。感谢您的尝试:)
Erazihel

Answers:


4

尝试使用以下方法添加到特定的工作空间:

yarn workspace <workspace_name> add <package_name>

对于一些文档,请点击这里


我不想将依赖项安装到整个工作区,而只安装到一个软件包
Erazihel

4

您可以尝试纱2 nodeLinker: node-modules.yarnrc.yml。Yarn 2保证仅在依赖项已更改的程序包上触发重建,这是Yarn 1不能保证的。但是,如果在添加新程序包后以不同的方式提升它们似乎无关紧要的程序包,则仍然存在极少数情况,但是这种情况很少发生。


我尝试了您的建议,但不幸的是结果似乎仍然相同...:/
Erazihel

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.