awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
lerna avatar

lerna/lerna

0
View on GitHub↗
36,066 stars·2,272 forks·TypeScript·MIT·35 viewslerna.js.org↗

Lerna

Lerna is a monorepo management tool, build orchestrator, and package publisher for JavaScript and TypeScript projects. It enables the management of multiple packages within a single shared repository, providing utilities for workspace organization and the coordinated publishing of packages to a registry.

The tool distinguishes itself through dependency-aware task orchestration and automated version management. It uses topological sorting to sequence tasks and utilizes content-hash caching to skip redundant executions when input files remain unchanged. Versioning is automated by parsing standardized commit messages to calculate semantic version numbers and generate release notes.

The system covers a broad range of workspace capabilities, including parallel task execution, hoisted dependency resolution to reduce disk usage, and symlink-based local linking for development. It also provides mechanisms for filtering package scopes using glob patterns or change detection to restrict command execution to specific subsets of the workspace.

Features

  • Monorepo Managers - Provides a comprehensive system for coordinating multiple related JavaScript packages within a single repository.
  • Monorepo Workflow Orchestration - Manages the build, test, and publishing processes for multiple separate packages residing within a single shared repository.
  • Build Orchestrators - Acts as a build orchestrator that manages parallel execution and sequencing for multi-package projects.
  • Dependency Installers - Installs and links dependencies across all project packages while hoisting external libraries.
  • Local Package Linking - Creates symlinks between internal packages to enable local development and testing without requiring an external registry.
  • Task Dependency Linkers - Allows users to specify the execution sequence for tasks to ensure dependent packages are built before successors.
  • Topological Task Sequencing - Determines execution order by analyzing package dependencies to ensure a package builds before its dependents.
  • Workspace Managers - Manages local package linking and shared dependencies across a multi-package workspace.
  • Parallel Execution - Runs scripts across multiple packages using parallel execution and caching to avoid repeating work.
  • Symlink-Based Dependency Management - Connects internal packages using filesystem symbolic links to allow local development without publishing to a registry.
  • Automated Release Management - Updates version numbers across packages using automated changelogs and commit history to generate project releases.
  • Dependency Hoisting - Reduces disk usage and avoids duplicate installations by hoisting shared external libraries to a single root directory.
  • Commit-Based Versioning Engines - Calculates the next semantic version number by parsing standardized commit messages from version control history.
  • Build Result Caching - Implements content-hash caching to skip redundant executions of build, test, and lint tasks.
  • Monorepo Orchestration - Implements dependency-aware orchestration of build, test, and lint tasks across the entire workspace.
  • Parallel Task Executors - Runs independent scripts across multiple packages simultaneously while respecting dependency constraints.
  • Task Execution Caches - Utilizes content-hash caching to skip redundant task executions when input files remain unchanged.
  • Package Publishing - Provides mechanisms to publish multiple packages to a registry using topological ordering and trusted authentication.
  • Build Configuration - Allows for the definition of standard input and target defaults to unify how packages are compiled, linted, and tested.
  • Execution Scope Filtering - Restricts command execution to specific packages using directory patterns or by identifying changed files.
  • Task Execution Filtering - Restricts command execution to specific subsets of the workspace using glob patterns or git-based change detection.
  • Build Tools and Bundlers - Build system for managing multi-package repositories.
  • Build Tools and Tooling - Build system for managing multi-package repositories.
  • Monorepo Management - Tool for managing multi-package projects.
  • Project Management Tools - Tool for managing multi-package repositories with git and npm.

Star history

Star history chart for lerna/lernaStar history chart for lerna/lerna

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does lerna/lerna do?

Lerna is a monorepo management tool, build orchestrator, and package publisher for JavaScript and TypeScript projects. It enables the management of multiple packages within a single shared repository, providing utilities for workspace organization and the coordinated publishing of packages to a registry.

What are the main features of lerna/lerna?

The main features of lerna/lerna are: Monorepo Managers, Monorepo Workflow Orchestration, Build Orchestrators, Dependency Installers, Local Package Linking, Task Dependency Linkers, Topological Task Sequencing, Workspace Managers.

What are some open-source alternatives to lerna/lerna?

Open-source alternatives to lerna/lerna include: nrwl/nx — This project is a build orchestration engine and development toolkit designed for managing large-scale monorepos. It… moonrepo/moon — Moon is a monorepo build system and task runner designed to orchestrate complex projects with multiple packages. It… npm/cli — This project is a command line interface for managing, installing, and publishing JavaScript packages to a remote… yarnpkg/berry — Berry is a Node.js package manager, dependency resolution engine, and monorepo workspace manager. It provides the… rust-lang/cargo — Cargo is the official build system and package manager for the Rust programming language. It provides a unified… oven-sh/bun — Bun is a high-performance runtime environment designed to execute JavaScript and TypeScript applications with minimal…

Open-source alternatives to Lerna

Similar open-source projects, ranked by how many features they share with Lerna.
  • nrwl/nxnrwl avatar

    nrwl/nx

    28,939View on GitHub↗

    This project is a build orchestration engine and development toolkit designed for managing large-scale monorepos. It provides a unified workspace environment that maps project relationships and dependencies, enabling the system to perform intelligent impact analysis and execute only the tasks affected by specific code changes. The system distinguishes itself through a persistent daemon that monitors file changes for near-instant feedback and a content-addressable caching mechanism that stores task outputs to prevent redundant computation across local and remote environments. It further suppor

    TypeScriptangularbuildbuild-system
    View on GitHub↗28,939
  • moonrepo/moonmoonrepo avatar

    moonrepo/moon

    3,687View on GitHub↗

    Moon is a monorepo build system and task runner designed to orchestrate complex projects with multiple packages. It functions as a dependency graph orchestrator that executes build targets in topological order and utilizes input hashing to cache results and skip redundant work. The project features a polyglot toolchain manager that automates the installation and versioning of language runtimes and CLI tools to ensure environment consistency. It also includes a plugin framework based on WebAssembly, allowing developers to extend build logic and toolchain behavior using any supported language.

    Rustbuild-systembuild-toolbun
    View on GitHub↗3,687
  • npm/clinpm avatar

    npm/cli

    9,846View on GitHub↗

    This project is a command line interface for managing, installing, and publishing JavaScript packages to a remote registry. It serves as a dependency resolution tool, a software registry publishing client, and a security auditor for Node.js development workflows. The tool distinguishes itself by providing integrated monorepo workspace management and a comprehensive registry authentication client that supports multi-factor authentication. It enables detailed control over the software supply chain through provenance attestations, package signature verification, and the generation of a Software

    JavaScriptjavascriptnodejsnpm
    View on GitHub↗9,846
  • yarnpkg/berryyarnpkg avatar

    yarnpkg/berry

    8,052View on GitHub↗

    Berry is a Node.js package manager, dependency resolution engine, and monorepo workspace manager. It provides the tools necessary for resolving, downloading, and managing dependencies to ensure consistent environments across different development machines, while also serving as a publishing tool for uploading versioned package tarballs to registries. The project is distinguished by its implementation of Plug'n'Play, which resolves dependencies without creating a physical node_modules directory by mapping dependencies directly to the file system. This enables a zero-install development workflo

    TypeScriptjavascriptnodejspackage-manager
    View on GitHub↗8,052
  • See all 30 alternatives to Lerna→