跳至主要内容

工具

Lerna 提供了一些实用函数,可用于在 Lerna 单仓中创建自己的工具。

const utils = require("lerna/utils");

detectProjects()

detectProjects() 函数创建了与 Lerna 内部用于执行其命令的项目图文件映射相同的映射。这对于编写需要对与 Lerna 相同的包集进行操作的自定义脚本很有用。

const { detectProjects } = require("lerna/utils");

const { projectGraph, projectFileMap } = await detectProjects();

返回的 projectGraph 将是 ProjectGraphWithPackages,它是 @nx/devkitProjectGraph 类型的扩展。它包含有关具有 package.json 文件的项目的其他元数据。它还有一个 localPackageDependencies 属性,用于跟踪项目之间的内部 npm 依赖关系(与从注册表下载的外部 npm 依赖关系相反)。

projectFileMap 是项目名称到其内文件的映射。这用于确定文件更改时需要对哪个项目进行版本控制。

请参阅 Lerna 的 TypeScript 源代码 以获取具体的类型详细信息。