npm v12 è GA: npm install chiede il permesso prima di eseguire codice
npm v12 è ora latest. allowScripts è disattivato per default, mentre --allow-git e --allow-remote valgono none. Lifecycle script e build implicite node-gyp richiedono approvazione.
Cosa cambia
npm v12 è ora latest. allowScripts è disattivato per default, mentre --allow-git e --allow-remote valgono none. Lifecycle script e build implicite node-gyp richiedono approvazione.
Policy esplicita
Usate npm approve-scripts --allow-scripts-pending per censire i pacchetti, revisionate ogni script e approvate solo ciò che serve. La policy allowScripts va committata in package.json.
Impatto sulla CI
Testate soprattutto addon nativi, dipendenze Git, tarball remoti, workspace e installazioni senza cache. Una cache calda può nascondere approvazioni mancanti.
Publishing sicuro
Per il publishing, sostituite i token longevi con trusted publishing OIDC. npm stage publish aggiunge una revisione umana con 2FA per i pacchetti più critici.
Checklist npm v12
✓Verificare gli script pending.
✓Vincolare le approvazioni alla versione.
✓Testare cold install in CI.
✓Migrare a OIDC o staged publishing.
Fonti
- 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