npm v12 ist GA: npm install führt Dependency-Code nur noch mit Erlaubnis aus
npm v12 ist als latest verfügbar. allowScripts ist standardmäßig deaktiviert; --allow-git und --allow-remote stehen auf none. Damit werden Lifecycle-Skripte, implizite node-gyp-Builds und Nicht-Registry-Quellen zu expliziten Vertrauensentscheidungen.
Was sich ändert
npm v12 ist als latest verfügbar. allowScripts ist standardmäßig deaktiviert; --allow-git und --allow-remote stehen auf none. Damit werden Lifecycle-Skripte, implizite node-gyp-Builds und Nicht-Registry-Quellen zu expliziten Vertrauensentscheidungen.
Policy statt Bypass
Prüfen Sie mit npm approve-scripts --allow-scripts-pending, welche Pakete Code ausführen wollen. Genehmigen Sie nur nachvollziehbare Pakete, bevorzugt versionsgebunden, und committen Sie die allowScripts-Policy in package.json.
CI-Auswirkungen
Native Add-ons, Git-Abhängigkeiten, Remote-Tarballs, Workspaces und warme Build-Caches sind die wichtigsten Testflächen. Mindestens ein sauberer npm ci-Lauf ohne Cache sollte Teil der Migration sein.
Sicher veröffentlichen
Für das Publishing empfiehlt npm OIDC Trusted Publishing statt langlebiger Write-Tokens. Kritische Pakete können zusätzlich npm stage publish und eine menschliche 2FA-Freigabe nutzen.
npm-v12-Checkliste
✓Pending Scripts prüfen und Eigentümer festlegen.
✓Freigaben möglichst an Versionen binden.
✓Cold Installs für alle unterstützten Plattformen testen.
✓Publish-Tokens durch OIDC oder Staging ersetzen.
Quellen
- 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