npm v12 sudah GA: npm install kini meminta izin sebelum menjalankan kode
npm v12 kini berstatus latest. allowScripts mati secara default, sedangkan --allow-git dan --allow-remote menjadi none. Lifecycle script dan build node-gyp implisit harus disetujui.
Apa yang berubah
npm v12 kini berstatus latest. allowScripts mati secara default, sedangkan --allow-git dan --allow-remote menjadi none. Lifecycle script dan build node-gyp implisit harus disetujui.
Kebijakan eksplisit
Jalankan npm approve-scripts --allow-scripts-pending, audit setiap paket, lalu izinkan hanya script yang benar-benar dibutuhkan. Commit kebijakan allowScripts ke package.json.
Dampak pada CI
Fokus uji pada native addon, dependency Git, remote tarball, workspace, dan cold install tanpa cache. Cache lama dapat menyembunyikan approval yang belum ada.
Publishing aman
Untuk publish, pindahkan token jangka panjang ke trusted publishing berbasis OIDC. Paket penting dapat memakai npm stage publish dengan approval 2FA manusia.
Checklist npm v12
✓Audit semua pending script.
✓Pin approval ke versi.
✓Uji cold install di CI.
✓Migrasi publish ke OIDC atau staging.
Sumber
- GitHub Changelog: npm install-time security and GAT bypass2fa deprecation
- GitHub Changelog: Upcoming breaking changes for npm v12
- npm Docs: npm approve-scripts
- npm Docs: npm deny-scripts
- npm Docs: Staged publishing for npm packages
- npm Docs: Trusted publishing for npm packages
- Reddit r/javascript: Upcoming breaking changes for npm v12