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

时间:2020-03-26 19:19:33

标签: javascript yarnpkg npm-scripts lerna monorepo

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

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

yarn add <package_name>

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

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

3 个答案:

答案 0 :(得分:5)

尝试通过以下方式添加到特定的工作区:-

yarn workspace <workspace_name> add <package_name>

对于某些文档check here

答案 1 :(得分:5)

使用范围将包添加到特定模块。

lerna add some_package_1 --scope=some_module_x

更多:https://github.com/lerna/lerna/tree/master/commands/add#readme

答案 2 :(得分:4)

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