
npm v12 за замовчуванням блокуватиме скрипти встановлення та Git-залежності
GitHub опублікував перелік змін npm v12: скрипти встановлення залежностей, Git-залежності та залежності з віддалених URL будуть вимкнені за замовчуванням. Реліз очікується у липні 2026 року, попередження вже видно в npm 11.16.0 і новіших.
Що змінюється в npm v12
GitHub опублікував перелік критичних змін, які прийдуть із npm v12 — наступною мажорною версією менеджера пакетів JavaScript, очікуваною у липні 2026 року. Реліз перетворює кілька автоматичних сьогодні дій npm install на кроки, які розробники мають явно дозволяти. Усі зміни вже доступні як попередження в npm 11.16.0 і новіших, тож проєкти можуть підготуватися до оновлення.
Скрипти встановлення потребують дозволу
Найбільша зміна — allowScripts типово вимкнено. Після оновлення npm install більше не виконуватиме скрипти preinstall, install і postinstall із залежностей, якщо їх явно не дозволити в проєкті. Це стосується й нативних збірок node-gyp: пакет, який містить файл binding.gyp, але не має окремого install-скрипту, все одно блокується, адже npm зазвичай неявно запускає для нього node-gyp rebuild. Скрипти prepare із Git-, файлових і link-залежностей блокуються так само.
Щоб побачити, що саме буде заблоковано, виконайте npm approve-scripts --allow-scripts-pending, потім дозвольте довірені пакети командою npm approve-scripts, а решту заблокуйте через npm deny-scripts. Отриманий список дозволів записується в package.json і має бути закомічений у репозиторій.
Git- і віддалені залежності типово вимкнені
Ще два прапорці змінюють типові значення. --allow-git стає none, тож npm install більше не розв'язуватиме Git-залежності — прямі чи транзитивні — якщо їх явно не дозволити. За словами GitHub, це закриває шлях виконання коду, коли файл .npmrc Git-залежності міг підмінити виконуваний файл Git навіть за використання --ignore-scripts. Зміну вперше оголосили 18 лютого 2026 року, і вона доступна в npm 11.10.0 і новіших.
--allow-remote також типово дорівнює none: залежності з віддалених URL, як-от HTTPS-tarball, більше не розв'язуються без явного дозволу. Прапорець доступний у npm 11.15.0 і новіших. Пов'язані --allow-file і --allow-directory у v12 зберігають поточні значення.
Як підготуватися
GitHub радить оновитися до npm 11.16.0 або новішого, виконати звичайне встановлення й переглянути попередження. Далі командою npm approve-scripts --allow-scripts-pending подивіться, які пакети мають скрипти, дозвольте довірені та закомітьте оновлений package.json. Після оновлення працюватимуть лише дозволені скрипти — усе недозволене просто зупиниться. Документація щодо npm approve-scripts, npm deny-scripts і конфігурації allow-scripts, яку використовують npx та глобальні встановлення, доступна на сайті документації npm, а обговорення триває в GitHub Community.
SiTech — веброзробка з підтримкою AI
Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.