pnpm の「ビルドスクリプトを無視しました」は全部許可せず、Claude に1件ずつ仕分けさせる
pnpm は依存パッケージの install スクリプトを既定では動かさず、警告を出す。pnpm approve-builds で全部許可すると、その安全策がなくなる。Claude に各パッケージのスクリプトを読ませ、許可・無視・保留に仕分けさせ、理由をコメントにして .npmrc に残す。
どんな時に使う?
Ignored build scripts: ...の警告が出るたびに、何となく全部許可している- サプライチェーン攻撃が気になるが、パッケージごとに調べる手間はかけたくない
手順
.npmrcにstrictDepBuilds=trueを書き、未判断のビルドスクリプトがあれば install を失敗させる- Claude に頼む: 警告に出たパッケージの
package.jsonの scripts と、実際に何をしているかを読み、次の基準で分けて- ネイティブのビルドが必要 → 許可(allowBuilds)
- お知らせのバナーを出すだけ → どちらでもよい(基本は無視)
- ビルド済みバイナリがあり、スクリプトなしでも動く → 無視(ignoredBuilds)
- 判断がつかない → 未分類のまま残し、警告を出し続ける
- 結果を
.npmrcにコメント付きで書かせる:# ネイティブビルドが必要 allowBuilds[]=core-js # ビルド済みバイナリで動く ignoredBuilds[]=@parcel/watcher(記事の例。どちらに入るかはプロジェクトと版によって変わる)
- 一連の流れがうまくいったら「これスキルにして」と頼み、次からはスキルで回す
注意点
- 設定名や書き方は pnpm の版で変わっている。自分の pnpm の版の公式ドキュメントで確かめる
- 判断に迷うものを無理に許可させない。未分類を残す選択肢を明示しておくのが大事
- npm 側でスクリプトを止める方法は npm/pnpm/bun/deno: 依存パッケージの install スクリプトを既定で止める