К основному содержанию
скилл CX Codex

lerna — скилл для Claude Code: правила работы с монорепозиторием

Скилл задаёт агенту правила Lerna: структура пакетов, версионирование, публикация и запуск скриптов в монорепозитории.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add Mindrally/skills --skill lerna -a claude-code
Открыть на GitHub

Что делает lerna

Скилл описывает, как вести монорепозиторий на Lerna: где лежат пакеты, как настроить lerna.json, как связать Lerna с workspaces пакетного менеджера. Агент получает готовые соглашения вместо того, чтобы придумывать их сам.

Внутри — разделы про структуру проекта, конфигурацию, выполнение задач, версионирование и публикацию. Отдельно разобраны режимы версий: independent, когда у каждого пакета своя версия, и фиксированный, когда версия общая. Есть блок про conventional commits и автоматический бамп версий по типам коммитов, а также про --since для запуска задач только в изменившихся пакетах.

Скилл пригодится, если у вас уже есть монорепозиторий на Lerna или вы только переносите туда пакеты. Без установленного Lerna и настроенного lerna.json он остаётся набором соглашений: команды вроде lerna version и lerna publish агент подскажет, но выполнять их будет нечем. Для публикации нужна авторизация в npm — скилл напоминает про неё в разделе про CI.

Какие задачи решает

  • разложить пакеты по packages/ и настроить lerna.json
  • выбрать между независимым и фиксированным версионированием
  • запустить сборку и тесты только в изменившихся пакетах
  • настроить автоматический бамп версий по conventional commits
  • опубликовать пакеты из CI без ручных подтверждений

Примеры запросов агенту

  • настрой lerna.json для монорепозитория с пакетами в packages/*
  • добавь conventional commits, чтобы версии бампились по типам коммитов
  • покажи, как публиковать только изменившиеся пакеты через lerna publish

Как установить lerna

1Через Skills CLI (Vercel)

npx skills add Mindrally/skills --skill lerna -a claude-code

2Вручную: положить файлы

~/.claude/skills/lerna/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/lerna/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о lerna

Как установить lerna в Claude?

Выполните npx skills add Mindrally/skills --skill lerna -a claude-code. Файл скилла окажется в ~/.claude/skills/lerna/SKILL.md.

Что делает скилл lerna?

Задаёт агенту соглашения по монорепозиторию на Lerna: структура пакетов, конфигурация, версионирование, публикация и запуск скриптов. Работает как справочник, а не как отдельная утилита.

Скилл сам публикует пакеты в npm?

Нет, он описывает команды и порядок действий. Публикация идёт через lerna publish, и для неё нужна авторизация в npm.

Исходный текст

SKILL.md · Apache-2.0
---
name: lerna
description: Best practices for Lerna monorepo management, versioning, and publishing
metadata:
  maintainer: Mindrally
  source: https://github.com/Mindrally/skills
---

# Lerna Monorepo Development

You are an expert in Lerna, the fast, modern build system for managing and publishing multiple JavaScript/TypeScript packages.

## Project Structure

- Organize packages following Lerna conventions:
  - `packages/` - All package directories (default)
  - Can customize with multiple directories in `lerna.json`
- Each package should be self-contained with its own:
  - `package.json`
  - Source code
  - Tests
  - Build configuration

## Lerna Configuration

Configure `lerna.json` at the root:

```json
{
  "$schema": "https://json.schemastore.org/lerna.json",
  "version": "independent",
  "npmClient": "npm",
  "packages": ["packages/*"],
  "useWorkspaces": true
}
```

- Choose versioning mode:
  - `"version": "independent"` - Each package versioned separately
  - `"version": "1.0.0"` - Fixed/locked mode, all packages same version
- Enable workspaces integration with `useWorkspaces: true`

## Workspaces Integration

Configure npm/yarn/pnpm workspaces in root `package.json`:

```json
{
  "workspaces": ["packages/*"],
  "private": true
}
```

- Let the package manager handle hoisting and linking
- Use Lerna for versioning, publishing, and running scripts

## Task Execution

- Run scripts across packages:
  - `lerna run build` - Run build in all packages
  - `lerna run test --scope=@org/package` - Run in specific package
  - `lerna run lint --since main` - Run only in changed packages
- Use `--stream` for real-time output
- Use `--parallel` for concurrent execution

## Versioning Workflow

- Update versions with `lerna version`:
  - `lerna version patch` - Bump patch version
  - `lerna version minor` - Bump minor version
  - `lerna version major` - Bump major version
  - `lerna version` - Interactive version selection
- Lerna automatically:
  - Updates package.json versions
  - Updates internal dependency versions
  - Creates git tags
  - Pushes to remote

## Publishing Packages

- Publish with `lerna publish`:
  - `lerna publish` - Publish packages changed since last release
  - `lerna publish from-git` - Publish packages tagged in git
  - `lerna publish from-package` - Publish packages with unpublished versions
- Configure npm registry in `.npmrc` or `lerna.json`
- Use `--dist-tag` for pre-release versions

## Change Detection

- Use `--since` flag for changed packages:
  - `lerna run test --since main`
  - `lerna changed` - List packages changed since last tag
  - `lerna diff` - Show diff since last release
- Leverage affected commands in CI for efficiency

## Conventional Commits

Enable conventional commits for automated versioning:

```json
{
  "command": {
    "version": {
      "conventionalCommits": true,
      "message": "chore(release): publish"
    }
  }
}
```

- Commits determine version bumps:
  - `fix:` - Patch version
  - `feat:` - Minor version
  - `BREAKING CHANGE:` - Major version
- Automatic changelog generation

## Dependency Management

- Use internal package references:
  ```json
  {
    "dependencies": {
      "@org/shared-utils": "^1.0.0"
    }
  }
  ```
- Lerna keeps internal dependencies in sync during versioning
- Hoist common dependencies to root with workspaces

## CI/CD Integration

- Install dependencies once at root level
- Use `lerna run` with `--since` for efficient CI
- Publish from CI with proper npm authentication
- Use `--yes` flag for non-interactive publishing

## Best Practices

- Keep packages focused and single-purpose
- Use consistent package naming: `@org/package-name`
- Maintain clear dependency boundaries between packages
- Document package APIs and usage
- Use TypeScript with project references for type checking
- Implement proper testing at package and integration levels
- Consider Nx integration for advanced caching and task execution

© Mindrally · Apache-2.0 · Mindrally/skills

Похожие скиллы

Всё по теме «DevOps и инфраструктура» →
monorepo-navigator Alireza Rezvani Помогает вести монорепозиторий: оценивать влияние изменений, запускать затронутые сборки и планировать миграции. Нужен при работе с пакетами и общим кодом. 591установок typescript-expert sickn33 Скилл для работы с TypeScript и JavaScript: разбирает типы, ускоряет проверку и помогает с миграциями. Пригодится, когда проект на TS растёт и компилятор начинает тормозить. CX Codex +1 12 600установок version-bump thedotmack Скилл проводит версию через манифесты, сборку, GitHub Release и публикацию npm. Нужен для релиза плагинов Claude Code. CX Codex +1 1 800установок link-workspace-packages nrwl Скилл добавляет зависимости между пакетами монорепозитория через workspace-команды npm, yarn, pnpm или bun. Пригодится, когда импорт из соседнего пакета падает с ошибкой резолва. CX Codex +1 3 100установок updating-npm-package spencerpauly Инструмент помогает обновлять npm-пакеты без скрытых поломок в коде. Он сверяет версии через npmjs.com и строит отчёт о миграции при мажорных релизах. CX Codex +1 398установок dependency-manager VoltAgent Community Проверяет зависимости на уязвимости и конфликты версий, ищет дубликаты и лишние пакеты. Помогает настроить обновления и уменьшить размер сборки. 356установок

Из того же набора168

graphql-development Набор правил для GraphQL: схема, типизированные клиенты, интеграция с React и Next.js. Пригодится, когда агент пишет резолверы и запросы. CX Codex +1 661установок turborepo Скилл задаёт агенту правила работы с Turborepo: структура воркспейсов, turbo.json, кэш и фильтры задач. Пригодится, когда монорепо уже есть и его надо привести в порядок. CX Codex +1 658установок rollup-bundler Скилл задаёт агенту правила конфигурации Rollup.js: форматы вывода, внешние зависимости, tree-shaking и плагины для сборки библиотек. CX Codex +1 657установок serverless Скилл задаёт агенту правила разработки на FastAPI в микросервисах и serverless-среде: AWS Lambda, Azure Functions, API-шлюзы. CX Codex +1 655установок convex Задаёт агенту правила работы с Convex: запросы, мутации, actions, индексы и файлы. Пригодится, когда бэкенд на Convex уже выбран. CX Codex +1 651установок onchainkit Скилл для ИИ-агента, который помогает собирать onchain-приложения на OnchainKit SDK: компоненты, провайдеры, транзакции и обмен токенов. CX Codex +1 641установок robocorp-cursor-rules Набор правил для ИИ-агента: как писать RPA-автоматизацию на Python под RoboCorp — функционально, с Pydantic и async. CX Codex +1 636установок parcel-bundler Скилл задаёт агенту правила работы со сборщиком Parcel: точки входа, TypeScript, CSS-модули, кэш и продакшен-сборка. Пригодится, когда проект собирается без конфига. CX Codex +1 633установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой