Перейти до основного змісту

pnpm 10.26

· 2 хв читання
Золтан Кочан
Головний розробник pnpm

pnpm 10.26 вводить більш суворі стандартні налаштування безпеки для залежностей, що розміщуються на git, додає allowBuilds для детальних дозволів на виконання скриптів та включає нове налаштування для блокування екзотичних перехідних залежностей.

Незначні зміни

Суворіша безпека залежностей Git

Напів-порушення. Залежність, що розміщена на Git, тепер блокується від виконання скриптів prepare під час інсталяції, якщо це не дозволено явно в onlyBuiltDependencies (або allowBuilds) #10288. Ця зміна запобігає виконанню шкідливого коду з ненадійних репозиторіїв git.

allowBuilds

Додано новий параметр allowBuilds, який забезпечує гнучкий спосіб керування скриптами збірки. Він приймає набір відповідників пакунків, щоб явно дозволити (true) або заборонити (false) виконання скрипту. Це замінює onlyBuiltDependencies та ignoredBuiltDependencies як бажаний метод конфігурації #10311.

Приклад:

allowBuilds:
esbuild: true
core-js: false
nx@21.6.4 || 21.6.5: true

blockExoticSubdeps

Додано нове налаштування blockExoticSubdeps для підвищення безпеки ланцюга постачання. При встановленні значення true запобігає обробці екзотичних протоколів (таких як git+ssh: або безпосередньо https: tar-архівів) у перехідних залежностях. Тільки прямим залежностям дозволено використовувати екзотичні джерела #10265.

Хеш цілісності для HTTP-архівів

Напів-порушення. pnpm тепер обчислює хеш цілісності для залежностей HTTP tar-архівів під час їх завантаження та зберігає його у файлі блокування. Це гарантує, що сервери не зможуть надавати змінений вміст під час наступних інсталяцій без належного виявлення #10287.

pnpm pack --dry-run

Додано підтримку --dry-run до команди pack. Це дозволяє перевірити, які файли будуть включені до tar-архіву, без його фактичного створення #10301.

Зміни в патчах

  • Показати застарівання у форматі таблиці/списку, коли остання версія є застарілою #8658.
  • Видалення налаштування injectWorkspacePackages із файлу блокування в команді deploy #10294.
  • Нормалізація URL-адреси архівів tar перед збереженням їх у файлі блокування #10273.
  • Виправлено нормалізацію URL-адрес для перенаправлених незмінних залежностей #10197.