GitHub объявил о масштабных изменениях в npm v12, которые кардинально изменят процесс установки пакетов и повысят безопасность цепочки поставок. Обновление выйдет в июле 2026 года, и его ключевая особенность — введение обязательного ручного подтверждения для ранее автоматически выполняемых сценариев. Эти меры направлены на закрытие уязвимостей, которые ранее позволяли стороннему коду выполняться без ведома разработчика.
Первое и самое заметное изменение касается настройки allowScripts , которая по умолчанию будет отключена ( off ). Это означает, что команды preinstall , install и postinstall , а также нативные сборки через node-gyp , больше не будут запускаться автоматически. Даже пакеты с файлом binding.gyp , которые ранее пересобирались неявно, теперь потребуют явного разрешения. Разработчики могут заранее проверить список блокируемых элементов с помощью команды npm approve-scripts —allow-scripts-pending , а затем одобрить или запретить сценарии через npm approve-scripts и npm deny-scripts . Все изменения фиксируются в package.json и должны быть закоммичены.
Второе нововведение связано с флагом —allow-git , который по умолчанию станет равным none . Это запретит установку зависимостей из репозиториев Git, включая транзитивные, без явного разрешения. Такое решение закрывает критичную уязвимость, когда конфигурационный файл .npmrc в Git-зависимости мог подменять исполняемые файлы даже при использовании флага —ignore-scripts . Эта мера была анонсирована еще в феврале 2026 года и доступна в версиях npm 11.10.0 и выше.
Третье ключевое изменение — запрет по умолчанию удаленных зависимостей через флаг —allow-remote . Теперь пакетный менеджер не будет разрешать установку пакетов по HTTPS-архивам ( tarball ) без явного указания флага. Эта настройка доступна с версии npm 11.15.0, но в v12 она станет обязательной. При этом значения для флагов —allow-file и —allow-directory останутся без изменений.
Для подготовки к обновлению GitHub рекомендует разработчикам обновиться до версии npm 11.16.0 или новее, выполнить стандартную установку пакетов и внимательно изучить появившиеся предупреждения. Особое внимание стоит уделить пакетам, которые используют сценарии установки или зависимости из Git-репозиториев. Если в проекте уже есть предупреждения о блокируемых элементах, их необходимо одобрить или запретить до выхода v12, чтобы избежать сбоев в процессе установки.
Эксперты отмечают, что новые меры значительно усилят защиту от Supply Chain Attacks, но потребуют от команд дополнительной работы по настройке зависимостей. Разработчики, использующие автоматизированные CI/CD-процессы, должны также обновить скрипты, чтобы они корректно обрабатывали новые ограничения. В случае игнорирования изменений проекты могут столкнуться с ошибками установки или даже полным отказом в развертывании.
Обновление npm v12 станет важным шагом в повышении безопасности экосистемы JavaScript, но его внедрение потребует внимательной подготовки. Разработчикам, чьи проекты зависят от автоматически выполняемых сценариев или внешних репозиториев, стоит начать тестирование новых команд уже сейчас, чтобы минимизировать риски на этапе миграции.


