微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将 monorepo 中的所有子文件夹 package.json 更新为相同版本?

如何解决如何将 monorepo 中的所有子文件夹 package.json 更新为相同版本?

我有一个仓库,里面有一堆不同的前端 React 项目,它们都有自己的 package.json 文件

我有四个要求:

  1. 我希望将所有这些项目保持在同一个依赖项轨道上。 (即,我希望我的所有项目都使用每个 npm 包的相同版本)
  2. 我希望能够使用一个“全局”命令将每个 package.json 更新到它们的最新版本。
  3. 理想情况下,我想使用某种经过验证的开源工具,例如 Yarn Workspaces 或 Lerna,而不是自己使用全局 package.json 文件来管理这一切。
  4. 我正在使用 Yarn 生态系统。

这些包不需要同时运行。并非每个项目都包含完全相同的依赖项,但都至少包含一些常见的依赖项(即 React、Webpack、Babel 等)。这些包也是完全私有的,不应在 npm 上发布,只能在 GitHub 上发布。

我对该工具进行了一些研究,但对于 Yarn Workspaces 是单独的解决方案还是需要 Lerna 感到困惑。以下是我目前在 Yarn Workspaces 中所做的工作:

文件夹结构:

Repo-root
   Packages
      Project-1
      Project-2

repo root package.json:

{
   "private": true,"name": "example-monorepo","workspaces": ["packages/*"],"scripts": {}
}

我知道 Yarn Workspaces 试图在幕后将所有常见依赖项移动到根 node_modules,但我对如何完成共享依赖项安装和更新到最新版本要求感到困惑。 Yarn Workspaces 能否自行完成要求,或者 Lerna 是否需要这样做?这将如何在 Lerna 中完成?我是否需要定义一个全局 package.json“单一事实来源”,或者这些工具在幕后自己做一些版本吗? Lerna 或 Yarn Workspaces 如何“知道”如何在没有全局版本范围集的情况下将所有单独的 package.json 文件更新到它们的最新版本? (我希望所有项目都一样)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。