gpt4 book ai didi

typescript - 如何管理多个 monorepos

转载 作者:行者123 更新时间:2023-12-04 13:27:55 46 4
gpt4 key购买 nike

在我们的项目中,我们在整个公司中使用了多个 monorepos。问题是,例如我们有 monorepo-A 和 monorepo-B,而 monorepo-B 使用来自 monorepo-A 的组件(这是不可更改的)。
例如,同一个团队正在开发 monorepo-A 和 monorepo-B。 Monorepo-B 是具有最终产品(服务器、网页的真实输出)的 monorepo,而 monorepo-A 只是在 monorepo-B 和其他团队使用的其他 monorepos 中使用的多个项目。
问题是,当团队同时开发 monorepo-A 和 monorepo-B 并在 monorepo-A 中更改某些内容时,开发人员需要先部署它才能在 monorepo-B 中进行尝试。
所以有一种方法与 yarn link但这不是很舒服,并且可能与软件包发生冲突。
有没有更好的方法如何在不发布代码的情况下处理本地开发的这种情况?有一个简单的结构(不是真实的,仅用于演示):

monorepo-a/
packages/
components/ (uses types)
schemas/ (uses types)
types/
lerna.json
package.json
tsconfig.json

monorepo-b/
packages/
web-app/ (uses monorepo-a/packages/components)
server/ (uses monorepo-a/packages/schemas)
types/
lerna.json
package.json
tsconfig.json
作为开发人员,我想更改 monorepo-A/packages/components 中的某些内容,并且无需在 monorepo-b/packages/web-app 中构建即可立即使用它。但是因为它们不在同一个工作区中,所以我不能使用 pathstsconfig.jsonworkspacespackage.json或 lerna 的东西。有没有办法不将其发布到本地存储库?

最佳答案

考虑创建一个 enterprise NPM registry .它会在您迁移时吸收一些资源,但可能是最具扩展性的解决方案,因为它允许您使用所有常规 NPM 工具处理内部依赖项。
这将允许每个 Mono 存储库发布每个子包,这非常有助于减少代码库之间的耦合并严格定义每个包的角色。

关于typescript - 如何管理多个 monorepos,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67043695/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com