Yarn与Lerna管理monorepo使用详解
什么是 Yarn workspace
Yarn workspace 是 Yarn 提供的 monorepo 下,管理依赖的机制。对代码仓库下,多个 package 的依赖,进行管理:将共同的依赖,做 hosting(提升)。这样,可以防止 package 中的包重复安装。 workspace 机制,会在根目录下,统一安装依赖到 node_module,并生成 yarn.lock。单个 package 下,不需要再生成 yarn.lock。
如何使用 Yarn workspace
1.Yarn 启用工作区
yarn config set workspaces-experimental true
命令的含义:添加workspaces-experimental true
到系统全局的.yarnrc
中。
2.修改根目录的 package.json,添加如下内容:
{ "private": true, ... "workspaces": ["packages/*"] }
配置项含义: private - 禁止发布根目录内容 workspaces - 设置工作区,声明 workspace 中 package 的路径。值是一个字符串数组,支持 Glob 通配符。
Lerna 安装依赖的方式
Lerna 安装依赖的方式,是使用命令lerna bootstrap
。 该命令的作用,是 cd 到 package 文件夹下的每个子文件夹,运行npm install
或yarn install
,在子文件夹中生成版本lock文件和node_module
,单独对依赖进行管理。
Yarn workspace 与 Lerna 结合
结合的方式
- 配置 lerna.json
{ ... "npmClient": "yarn", "useWorkspaces": true }
- 配置 package.json
{ "private": true, ... "workspaces": ["packages/*"] }
角色的分配
Yarn 负责管理依赖,workspace 会自动对 package 的引用 ,设置软链接(symlink),并且软链接仅在当前 workspace 中生效。 Lerna 负责版本的发布工作,对 package 相互之间的依赖,做好版本管理。
好处
减少项目的磁盘占用空间
Yarn 将项目中的共同依赖,提升到根目录下进行安装
自动设置软链接,方便调试
Yarn 的 workspace 会自动对 package 的引用,设置 symlink
- 所有 package 使用同一个 yarn.lock,更少造成冲突且易于审查
使用
- 首次安装依赖
lerna bootstrap
- 安装
dependencies
依赖 `yarn add -W [pkg] - 安装
devDependencies
依赖yarn add -D -W [pkg]
-W
的含义: 安装依赖到 workspace -D的含义: 安装依赖到devDependencies`
以上就是Yarn与Lerna管理monorepo使用详解的详细内容,更多关于Yarn Lerna管理monorepo的资料请关注脚本之家其它相关文章!
相关文章
Vue+ElementUI前端添加展开收起搜索框按钮完整示例
最近一直在用element ui做后台项目,下面这篇文章主要给大家介绍了关于Vue+ElementUI前端添加展开收起搜索框按钮的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下2024-05-05openlayers6之地图覆盖物overlay三种常用用法(popup弹窗marker标注text文本)
这篇文章主要介绍了openlayers6之地图覆盖物overlay三种常用用法(popup弹窗marker标注text文本),主要讲overlay三种最常用的案例,感兴趣的朋友一起看看吧2021-09-09vue.js页面加载执行created,mounted的先后顺序说明
这篇文章主要介绍了vue.js页面加载执行created,mounted的先后顺序说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-11-11
最新评论