我正在尝试使用 yarn v2 工作区创建一个 monorepo,然后我想在 gitlab 包注册表中发布每个包,以避免在注册表中已经存在相同版本的情况下每次构建包。我的项目示例在 gitlab 上是公开的:https ://gitlab.com/p.nopleggio/monorepov3
使用此配置一切正常,这两行在.gitlab-ci.yml
:
yarn workspaces foreach -pt run build
yarn workspaces foreach --no-private npm publish
所有包都是在注册表中构建和发布的,所以没关系。
但现在我试图在工作空间内只构建更改的包,而不仅仅是所有包。所以我只是为了了解如何在注册表中维护这个包@monorepov3/common@1.0.1
并以这种方式编辑 .gitlab-ci.yml :
yarn workspace @monorepov3/backoffice-app run build
yarn workspace @monorepov3/backoffice-app npm publish
所以我试图只构建 @monorepov3/backoffice-app
包,我想从注册表中检索@monorepov3/common
依赖@monorepov3/backoffice-app
项,但是当构建命令启动不起作用时,因为没有在@monorepov3/common
本地找到并且没有在注册表中查找。
谁能告诉我如何实现这一目标?如何使用注册表中的包构建 ci/cd 管道中的依赖项?
另一个问题是如何只构建已更改的包?