首页
学习
活动
专区
圈层
工具
发布
技术百科首页 >Yarn >Yarn 的 workspaces 怎么管理 monorepo 里的多个包?

Yarn 的 workspaces 怎么管理 monorepo 里的多个包?

词条归属:Yarn

1. 通过 glob 模式声明 workspace

  • 在根目录的 package.json 中添加 workspaces 字段,列出各子包的相对路径(支持 glob 模式,如 "packages/*")
  • 每个被匹配的目录只要包含自己的 package.json,就会成为一个独立的 workspace
  • 即使项目只有一个包,根 workspace 也始终存在,作为默认 workspace

2. workspace 间的依赖与共享

  • 内部包之间可通过特殊的 workspace: 协议相互引用(如 "@my-org/utils": "workspace:^"),该协议在发布时会被透明替换为实际版本号
  • 还可通过 catalog: 协议在多个 workspace 间共享依赖范围
  • Yarn 会把共享依赖提升到根目录,每个版本只安装一次,从而节省磁盘空间并加快安装

3. 配套的 monorepo 工具链

  • yarn workspaces foreach 可跨多个 workspace 并行运行同名脚本,-A 选中全部、-p 并行、-t 按拓扑顺序(依赖优先)执行
  • yarn workspaces focus 可聚焦安装指定 workspace 及其传递依赖所需的包,跳过其他无关内容
  • 约束引擎、workspace profiles 等能力可与 workspaces 配合,进一步保证 monorepo 内各包遵循一致的规范
相关文章
基于yarn1.x的monorepo实践分享
在版本控制系统中,monorepo是一种软件开发策略,其中许多项目的代码存储在同一存储库中。这种软件工程实践至少可以追溯到2000年代初期,当时被称为“共享代码库”。一个相关的概念是整体,但是尽管整体将其子项目合并为一个大型项目,但整体仓库可能包含独立的项目。(翻译自维基百科)
江涛学编程
2023-05-27
6170
突破项目瓶颈:2024 年 Monorepo 工具选择和实践
原文地址:https://juejin.cn/post/7342360674151858202
winty
2024-03-18
4.9K0
Vue3源码01 : 代码管理策略-monorepo
从定义中可以知道,monorepo是一种策略,该策略的具体内容是:多个项目存储在同一个代码仓库中。采用一种策略,肯定是因为该策略具备一些优点。当然,也要认清其缺点。从下面这张图中,我们可以看出,项目代码的组织策略是在实践中诞生,不断发展变化的。
杨艺韬
2022-09-27
1.9K0
基于yarn1.x的monorepo实践分享
几天前,晓东船长微信问我,你们团队有没有monorepo的实践,我很遗憾的告诉他没有,但这在我心里播下了一颗探索的种子,刚好最近老总要搞内蒙古的新项目,我和另一个前端兄弟组成双枪敢死队进行保驾护航,于是我就开始探索,有没有一种可能,可以一个仓库管理多个项目,这里说的管理是指有条理有规范的管理,而不是说硬是把几个项目蹂躏到一起。
江涛学编程
2023-03-05
1K0
lerna最佳实践
在介绍我们今天的主角 lerna 之前,首先了解下什么是 multirepo ?什么是 monorepo ?
astonishqft
2022-05-10
2.9K0
点击加载更多
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
领券