npm v12 est GA : npm install demande désormais l'autorisation d'exécuter du code

Dev

npm v12 est désormais marqué latest. allowScripts est désactivé par défaut, et --allow-git comme --allow-remote valent none. Les scripts lifecycle et les builds implicites node-gyp exigent donc une autorisation.

npm v12 est GA : npm install demande désormais l'autorisation d'exécuter du code
npm v12 bloque par défaut les scripts d'installation, dépendances Git et URL distantes. Un guide pour modules natifs, CI et publication sécurisée.

Ce qui change

npm v12 est désormais marqué latest. allowScripts est désactivé par défaut, et --allow-git comme --allow-remote valent none. Les scripts lifecycle et les builds implicites node-gyp exigent donc une autorisation.

Une policy explicite

Lancez npm approve-scripts --allow-scripts-pending, examinez chaque package et n'approuvez que les scripts justifiés. Versionnez la policy allowScripts dans package.json avec une revue renforcée.

Impact CI

Testez en priorité les modules natifs, dépendances Git, tarballs distants, workspaces et installations à froid. Un cache de binaire peut masquer une policy incomplète.

Publier en sécurité

Pour publier, remplacez les tokens d'écriture durables par OIDC trusted publishing. npm stage publish permet d'ajouter une validation humaine avec 2FA pour les packages sensibles.

Checklist npm v12

Inventorier les scripts en attente.

Épingler les autorisations par version.

Tester des installations CI sans cache.

Migrer vers OIDC ou staged publishing.

Sources