Appearance
lerna
Lerna.js 是一个基于 Git 和 npm 的多包管理器,用于管理具有多个 npm 包的 JavaScript 项目。它可以帮助开发人员在单个代码库中维护多个包,从而更轻松地协调代码和版本控制,并简化跨包依赖性的管理。
Lerna.js 可以自动化一些常见的任务,例如同步更改多个包的版本号、同时发布多个包等。它还提供了许多其他功能,例如自定义的工作流程、版本升级的策略、并行化构建等。Lerna.js 可以显著减少多包项目的管理难度,提高开发效率。
常用指令
bash
lerna init # 初始化 Lerna.js 项目。
lerna create <package-name> # 创建一个新的子包。
lerna bootstrap # 安装依赖项并链接相互依赖的子包。
lerna add <package-name> [--scope=<scope>] [--dev] # 将指定的包添加为依赖项。可选参数 --scope 用于指定要添加依赖项的子包,--dev 用于将包添加为开发依赖项。
lerna run <script-name> [--scope=<scope>] # 在指定的子包或所有子包中运行 npm 脚本。
lerna exec <command> # 在所有子包中执行指定的 shell 命令。
lerna clean # 清除项目中的所有 node_modules 目录和 package-lock.json 文件。
lerna publish # 将所有更新过的子包发布到 npm 仓库中。
lerna changed # 列出自上次发布以来被更新的子包。
lerna diff [package-name] # 显示自上次发布以来指定子包的差异。
创建 monorepo 项目
bash
# 第一步:初始化 Lerna.js 项目。
lerna init
# 第二部:创建一个新的子包。
lerna create <package-name>
# 第三步:添加依赖。可选参数 --scope 用于指定要添加依赖项的子包,--dev 用于将包添加为开发依赖项。
lerna add <package-name> [--scope=<scope>] [--dev]
# 第四步:执行
lerna run <script-name> [--scope=<scope>]
导入
lerna import
命令是将外部包作为一个新的 Git 仓库导入到 Lerna 项目中。因此,被导入的包必须是一个 Git 仓库。如果要导入一个非 Git 仓库的包,可以先将其转化为一个 Git 仓库,再使用 lerna import 命令进行导入。
bash
lerna import <dir-name> # 导入
安装依赖
bash
lerna add <package-name> [--scope=<scope>] [--dev] # 为指定子包添加依赖,并不会安装
lerna bootstrap # 安装子依赖,自动执行每个包中的 npm install,将包内的依赖安装好