pnpm Hooks

Programmatic extension points for customizing dependency resolution and installation behavior. `.pnpmfile.cjs` exposes lifecycle hooks (`readPackage`, `afterAllResolved`) that let projects rewrite package manifests before installation. The `pnpm` block in `package.json` adds `overrides`, `packageExtensions`, `patchedDependencies`, `peerDependencyRules`, and `neverBuiltDependencies` for fine-grained dependency control without forking packages.

API entry from apis.yml

apis.yml Raw ↑
aid: pnpm:pnpm-hooks
name: pnpm Hooks
tags:
- Hooks
- Extension
- Node.js
- Package Manager
humanURL: https://pnpm.io/pnpmfile
properties:
- url: https://pnpm.io/pnpmfile
  name: .pnpmfile.cjs
  type: Documentation
- url: https://pnpm.io/package_json#pnpmoverrides
  name: pnpm.overrides
  type: Documentation
- url: https://pnpm.io/package_json#pnpmpackageextensions
  name: pnpm.packageExtensions
  type: Documentation
- url: https://pnpm.io/package_json#pnpmpatcheddependencies
  name: pnpm.patchedDependencies
  type: Documentation
description: Programmatic extension points for customizing dependency resolution and installation behavior.
  `.pnpmfile.cjs` exposes lifecycle hooks (`readPackage`, `afterAllResolved`) that let projects rewrite
  package manifests before installation. The `pnpm` block in `package.json` adds `overrides`, `packageExtensions`,
  `patchedDependencies`, `peerDependencyRules`, and `neverBuiltDependencies` for fine-grained dependency
  control without forking packages.