Yarn与Lerna管理monorepo使用详解

Yarn与Lerna管理monorepo使用详解

目录

什么是 Yarn workspace

如何使用 Yarn workspace

Lerna 安装依赖的方式

Yarn workspace 与 Lerna 结合

结合的方式

角色的分配

好处

使用

什么是 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 installyarn 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的资料请关注易知道(ezd.cc)其它相关文章!

推荐阅读

    node.js包管理工具Yarn使用简介

    node.js包管理工具Yarn使用简介Yarn是由Facebook、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具 , 它主要是为了弥补 np

    yarn和node是做什么的?

    yarn和node是做什么的?下面本篇文章就来给大家介绍一下yarn和node,希望对大家有所帮助。YARN是做什么的?yarn是facebook发布的一种包管理工

    yarn的安装及使用详解

    yarn的安装及使用详解目录一、引言二、同为包管理工具 npm和yarn的区别三、yarn的安装四、总结一、引言
    之前出过一篇关于 用 npm 创建

    pnpm对npm及yarn降维打击详解

    pnpm对npm及yarn降维打击详解目录正文npm2yarnpnpm总结正文
    大家最近是不是经常听到 pnpm,我也一样。今天研究了一下它的机制,确实厉害,对