Files
pnpm/pnpm11/exec/lifecycle/README.md
Zain QureshiandClaude Opus 5.5 7162c6f5ec docs: fix stale usage examples in six package READMEs (#16959)
* docs: fix stale usage examples in six package READMEs

The usage examples imported default exports these packages no longer
have. They now import the named exports, call the current function
names, and pass the options the current signatures accept.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* docs: import path in the lifecycle example, drop @pnpm/logger from the changeset

@pnpm/logger is in versioning.ignore, so a changeset entry for it fails
pnpm change check. The lifecycle example used path without importing it
and require in an ES module.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* docs: single backslashes in the store path output, plain changeset wording

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 14:19:38 +02:00

51 lines
1.1 KiB
Markdown

# @pnpm/exec.lifecycle
> Package lifecycle hook runner
<!--@shields('npm')-->
[![npm version](https://img.shields.io/npm/v/@pnpm/exec.lifecycle.svg)](https://npmx.dev/package/@pnpm/exec.lifecycle)
<!--/@-->
## Installation
```sh
pnpm add @pnpm/logger @pnpm/exec.lifecycle
```
## Usage
```ts
import { readFile } from 'node:fs/promises'
import path from 'node:path'
import { runLifecycleHook, runPostinstallHooks } from '@pnpm/exec.lifecycle'
const targetPkgRoot = path.resolve('node_modules/target-pkg')
const pkg = JSON.parse(await readFile(path.join(targetPkgRoot, 'package.json'), 'utf8'))
// Run a specific hook
await runLifecycleHook('preinstall', pkg, {
depPath: 'target-pkg@1.0.0',
pkgRoot: targetPkgRoot,
rootModulesDir: path.resolve('node_modules'),
unsafePerm: true,
})
// Run all install hooks
await runPostinstallHooks({
depPath: 'target-pkg@1.0.0',
pkgRoot: targetPkgRoot,
rootModulesDir: path.resolve('node_modules'),
unsafePerm: true,
})
```
## API
### `runLifecycleHook(stage, packageManifest, opts): Promise<boolean>`
### `runPostinstallHooks(opts): Promise<boolean>`
## License
MIT