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