# @pnpm/exec.lifecycle > Package lifecycle hook runner [![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 runLifecycleHook, {runPostinstallHooks} from '@pnpm/exec.lifecycle' const targetPkgRoot = path.resolve('node_modules/target-pkg') const pkg = require(path.join(targetPkgRoot, 'package.json')) // Run a specific hook await runLifecycleHook('preinstall', pkg, { pkgId: 'target-pkg/1.0.0', pkgRoot: targetPkgRoot, rawConfig: {}, rootModulesDir: path.resolve('node_modules'), unsafePerm: true, }) // Run all install hooks await runPostinstallHooks({ pkgId: 'target-pkg/1.0.0', pkgRoot: targetPkgRoot, rawConfig: {}, rootModulesDir: path.resolve('node_modules'), unsafePerm: true, }) ``` ## API ### `runLifecycleHook(stage, packageManifest, opts): Promise` ### `runPostinstallHooks(opts): Promise` ## License MIT