gpt4 book ai didi

lerna - 使用共享库时的 Yarn 工作区最佳实践

转载 作者:行者123 更新时间:2023-12-01 07:41:19 25 4
gpt4 key购买 nike

对于 yarn workspaces,我有一个常见(或不那么 coomon)的场景并没有在网上找到适合我的指南。

yarn 工作区看起来像这样:

 - monorepo
- packages
- client
- admin
- theme
- lib
  • 客户用作我们的最终用户,它是一个 react 项目
  • 管理员 用作管理员用户的后台,它也内置于 react
  • 主题 用于所有 UI 套件(组件)和故事书。我们在 client 中使用 UI 套件和 admin项目,这是在 2 个项目之间共享组件的经典“monorepo 风格”(lerna)。此文件夹应仅为此项目共享。
  • 图书馆用于所有 API 和多个项目之间共享的“业务逻辑”。我有 4 个项目,它们对 API 请求、身份验证、Redux 等使用相同的库功能。

  • 附加信息:
  • monorepo是具有 .gitmodules 的根存储库
  • 每个子文件夹是一个不同的git仓库
  • 我们使用工作区是为了在 theme 上轻松开发并在 clientadmin项目同时进行。

  • 问题:

    我们跑 yarn start仅在 client项目和 admin项目。两个项目都使用相同的 theme和相同 lib功能。因为 lib与其他项目共享,每周更新一次:
  • 我如何防止它从一个项目更新到另一个项目?我应该和tags一起工作吗?在 git 存储库中还是应该删除 lib来自 monorepo 工作空间并使用它作为 npm package (重点是当我们更改 lib 文件时,我们不需要一次又一次地更改 npm update 文件。
  • 有一个简单的开发过程。
  • lib将是 npm 包,我如何在运行 yarn start 时告诉 monorepo 使用工作区并在我运行时使用 npm 版本 yarn build ?

  • 请就此场景的最佳实践提出建议。

    提前致谢,
    狮子座。

    最佳答案

    以下是我的个人喜好。

    - monorepo
    - packages
    - client
    - admin
    - core

    我认为 lib 可以移动到核心,而主题对我来说更像是 npm 包。

    关于lerna - 使用共享库时的 Yarn 工作区最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61119505/

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