npm v12 está GA: npm install agora pede permissão antes de executar código
npm v12 agora está marcado como latest. allowScripts fica desligado por padrão; --allow-git e --allow-remote passam a none. Scripts de ciclo de vida e builds implícitos de node-gyp exigem aprovação.
O que muda
npm v12 agora está marcado como latest. allowScripts fica desligado por padrão; --allow-git e --allow-remote passam a none. Scripts de ciclo de vida e builds implícitos de node-gyp exigem aprovação.
Política explícita
Execute npm approve-scripts --allow-scripts-pending, revise cada pacote e aprove apenas scripts necessários. A política allowScripts deve ser commitada no package.json.
Impacto no CI
Teste addons nativos, dependências Git, tarballs remotos, workspaces e instalações frias sem cache. Um cache antigo pode esconder uma aprovação ausente.
Publicação segura
Na publicação, troque tokens duradouros por trusted publishing com OIDC. Para pacotes críticos, npm stage publish adiciona revisão humana e 2FA antes da versão pública.
Checklist do npm v12
✓Auditar scripts pendentes.
✓Fixar aprovações por versão.
✓Testar cold install no CI.
✓Migrar publishing para OIDC ou staging.
Fontes
- 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