工具
Lerna 提供了一些实用函数,可用于在 Lerna 单仓中创建自己的工具。
const utils = require("lerna/utils");
detectProjects()
detectProjects()
函数创建了与 Lerna 内部用于执行其命令的项目图文件映射相同的映射。这对于编写需要对与 Lerna 相同的包集进行操作的自定义脚本很有用。
const { detectProjects } = require("lerna/utils");
const { projectGraph, projectFileMap } = await detectProjects();
返回的 projectGraph
将是 ProjectGraphWithPackages
,它是 @nx/devkit
中 ProjectGraph
类型的扩展。它包含有关具有 package.json
文件的项目的其他元数据。它还有一个 localPackageDependencies
属性,用于跟踪项目之间的内部 npm 依赖关系(与从注册表下载的外部 npm 依赖关系相反)。
projectFileMap
是项目名称到其内文件的映射。这用于确定文件更改时需要对哪个项目进行版本控制。
请参阅 Lerna 的 TypeScript 源代码 以获取具体的类型详细信息。