Cette page est affichée en anglais. Une traduction française est en cours.
ConfigsApr 25, 2026·3 min de lecture

Yarn — Modern JavaScript Package Manager with Plug'n'Play

Yarn is a fast, reliable JavaScript package manager with workspaces, offline caching, and an optional Plug'n'Play install strategy that eliminates node_modules.

assetLangBanner.body

Introduction

Yarn is a JavaScript and TypeScript package manager created to solve consistency and performance problems in the npm ecosystem. Its modern version (Berry / Yarn 4) introduces Plug'n'Play, workspaces, and strict dependency resolution by default.

What Yarn Does

  • Installs npm-compatible packages with deterministic lockfile resolution
  • Supports workspaces for monorepo dependency management
  • Offers Plug'n'Play (PnP) mode that removes the need for node_modules
  • Provides offline mirroring so installs work without network access
  • Enforces strict peer dependency rules to catch version conflicts early

Architecture Overview

Yarn 4 (Berry) is written in TypeScript and ships as a single self-contained JS file committed to your repo via .yarn/releases. It resolves dependencies from the lockfile (yarn.lock), fetches compressed archives into a global or local cache, and in PnP mode generates a .pnp.cjs loader that maps import requests to zip entries without extracting to disk.

Self-Hosting & Configuration

  • Enable Corepack (corepack enable) so the correct Yarn version is used per project
  • Set the Yarn version per repo with yarn set version stable
  • Configure .yarnrc.yml for registry URLs, PnP settings, and plugin paths
  • Use yarn workspaces foreach to run scripts across monorepo packages
  • Store the cache in .yarn/cache and commit it for fully offline CI

Key Features

  • Plug'n'Play eliminates node_modules for faster installs and stricter resolution
  • Built-in workspace support for multi-package repositories
  • Constraints engine lets you enforce dependency rules across a monorepo
  • Extensible via plugins (TypeScript, interactive tools, workspace utilities)
  • Corepack integration ensures contributors use the exact same version

Comparison with Similar Tools

  • npm — ships with Node.js and works everywhere; Yarn adds PnP, workspaces constraints, and offline installs
  • pnpm — uses a content-addressable store and hard links; Yarn PnP avoids disk extraction entirely
  • Bun — all-in-one runtime with a built-in package manager; Yarn focuses purely on dependency management
  • Turbo — monorepo task runner; Yarn manages dependencies while Turbo orchestrates builds on top

FAQ

Q: Is Yarn 4 backwards-compatible with Yarn 1 (Classic)? A: The CLI commands are mostly compatible, but the internals differ significantly. Yarn 1 is in maintenance mode; migration to Yarn 4 requires running yarn set version berry.

Q: Do all Node libraries work with Plug'n'Play? A: Most do. Packages that rely on undeclared dependencies need a packageExtensions entry in .yarnrc.yml. The ecosystem compatibility is high.

Q: Can I still use node_modules instead of PnP? A: Yes. Set nodeLinker: node-modules in .yarnrc.yml to fall back to the traditional layout.

Q: How does Yarn handle security auditing? A: Run yarn npm audit to check for known vulnerabilities in your dependency tree, similar to npm audit.

Sources

Fil de discussion

Connectez-vous pour rejoindre la discussion.
Aucun commentaire pour l'instant. Soyez le premier à partager votre avis.

Actifs similaires