npm v12 стал GA: npm install теперь просит разрешение на запуск кода

Dev

npm v12 получил тег latest. allowScripts по умолчанию выключен, а --allow-git и --allow-remote установлены в none. Lifecycle scripts и неявная сборка node-gyp требуют явного разрешения.

npm v12 стал GA: npm install теперь просит разрешение на запуск кода
npm v12 по умолчанию блокирует install scripts, Git-зависимости и удалённые URL. Практический план для native modules, CI и публикации.

Что изменилось

npm v12 получил тег latest. allowScripts по умолчанию выключен, а --allow-git и --allow-remote установлены в none. Lifecycle scripts и неявная сборка node-gyp требуют явного разрешения.

Явная политика

Запустите npm approve-scripts --allow-scripts-pending, проверьте каждый пакет и разрешите только необходимые scripts. Политику allowScripts нужно хранить в package.json и ревьюить.

Влияние на CI

В первую очередь тестируйте native addons, Git dependencies, remote tarballs, workspaces и cold install без кеша. Старый binary cache может скрыть отсутствие разрешения.

Безопасная публикация

Для публикации замените долгоживущие tokens на OIDC trusted publishing. npm stage publish добавляет человеческое 2FA-подтверждение для критичных пакетов.

Чек-лист npm v12

Проверить pending scripts.

Закрепить разрешения за версиями.

Запустить cold install в CI.

Перейти на OIDC или staging.

Источники