npm v12 が GA:npm install は依存コードを実行する前に許可を求める

Dev

npm v12 が latest になった。allowScripts はデフォルトで無効、--allow-git--allow-remotenone になる。lifecycle script と暗黙の node-gyp build は明示的な承認が必要だ。

npm v12 が GA:npm install は依存コードを実行する前に許可を求める
npm v12 は install script、Git dependency、remote URL dependency をデフォルトで遮断する。native module、CI、公開フローの実務移行ガイド。

何が変わるか

npm v12 が latest になった。allowScripts はデフォルトで無効、--allow-git--allow-remotenone になる。lifecycle script と暗黙の node-gyp build は明示的な承認が必要だ。

明示的な policy

npm approve-scripts --allow-scripts-pending で実行候補を洗い出し、根拠を確認した package だけを承認する。allowScripts policy は package.json に commit し、通常の version bump より厳しく review する。

CI への影響

native addon、Git dependency、remote tarball、workspace、cache なしの cold install を優先して検証する。既存 binary cache は不足した承認を隠す可能性がある。

安全な公開

公開処理は長期 token から OIDC trusted publishing へ移す。重要な package では npm stage publish と人による 2FA 承認を追加できる。

npm v12 チェックリスト

未承認 script を棚卸しする。

承認を version に pin する。

CI で cold install を試す。

公開を OIDC または staging に移す。

Sources