Drop-in replacement for broken pnpm approve-builds.
Since pnpm v10, all dependency build scripts require explicit approval. The built-in pnpm approve-builds command has a known bug that corrupts pnpm-workspace.yaml by splitting package names into individual characters:
# What pnpm approve-builds generates (broken):
onlyBuiltDependencies:
- ' '
- ','
- '-'
- /
- '5'
- '@'
- a
- d
- e
- esbuild
- h
- i
- ...This tool writes approvals correctly to package.json instead:
{
"pnpm": {
"onlyBuiltDependencies": ["@swc/core", "esbuild"]
}
}Ensure PNPM_HOME is configured (required for global packages):
pnpm setup
source ~/.zshrc # or restart terminalgit clone https://github.com/floatrx/approve-builds.git
cd approve-builds
pnpm install
pnpm link -gRun in any project directory:
approve-buildsThe tool will:
- Run
pnpm installto detect packages with ignored build scripts - Show an interactive checkbox to select which packages to approve
- Write selected packages to
package.jsonunderpnpm.onlyBuiltDependencies - Re-run
pnpm installto apply
Add to your .zshrc or .bashrc:
alias ab="approve-builds"MIT