Эта страница переведена PageTurner AI (бета). Не одобрена официально проектом. Нашли ошибку? Сообщить о проблеме →
Утилиты
Lerna предоставляет несколько служебных функций, которые можно использовать при создании собственных инструментов в рамках монорепозитория Lerna.
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 — расширение типа ProjectGraph из @nx/devkit. Он содержит дополнительные метаданные о проектах, имеющих файлы package.json. Также включает свойство localPackageDependencies, которое отслеживает внутренние npm-зависимости между проектами (в отличие от внешних зависимостей, загружаемых из реестра).
projectFileMap представляет собой отображение имён проектов на файлы внутри них. Это используется для определения, какой проект требует версионирования при изменении файла.
Подробную информацию о конкретных типах смотрите в исходном коде Lerna.