Important: This documentation covers modern versions of Yarn.
For 1.x docs, see classic.yarnpkg.com.
Yarn
IntroductionInstallationUsageEditor SDKsMigrationQuestions & AnswersRecipes

Recipes

Edit this page on GitHub

TypeScript + PnP quick start:

  • Initialize the repo using Yarn 2:
yarn init -2
yarn add --dev typescript
yarn dlx @yarnpkg/sdks vscode
yarn plugin import typescript

Running a Yarn CLI command in the specified directory:

  • Starting a new library inside a monorepo directly, without manually creating directories for it.
yarn packages/my-new-lib init
  • Running an arbitrary command inside a specific workspace:
yarn packages/app tsc --noEmit

Hybrid PnP + node_modules mono-repo:

You may sometimes need to use node_modules on just part of your workspace (for example, if you use React-Native).

  • Create a separate directory for the node_modules project.
mkdir nm-packages/myproj
  • Create an empty lockfile in the new project. Yarn uses lockfiles to locate the root of projects.
touch nm-packages/myproj/yarn.lock
  • Add a .yarnrc.yml file inside the new directory that enables node_modules just for it (nm-packages/myproj/.yarnrc.yml):
nodeLinker: node-modules
  • Add a PnP ignore pattern for this path in your main .yarnrc.yml at the root of your monorepo:
pnpIgnorePatterns:
  - ./nm-packages/**
  • Run yarn to apply pnpIgnorePatterns in the repo root.
  • Run cd nm-packages/myproj && yarn to install the now isolated project.