Зараз читаютьПрактичні новини про код, AI та технології — без інформаційного шуму

pnpm 11.26 посилив захист секретів, перевірку залежностей і стабільність монорепозиторіїв

Нова версія pnpm 11 приховує облікові дані в помилках завантаження, виправляє запис lock-файлів через symlink та додає CI-перевірку версій пакетів.

pnpm 11.26 посилив захист секретів, перевірку залежностей і стабільність монорепозиторіїв

pnpm 11.26 — змістовне оновлення гілки 11, яке одночасно посилює захист секретів, контроль залежностей і надійність великих workspace. Реліз опубліковано 6 вересня 2026 року. Він не є переходом на pnpm 12: це окреме оновлення для команд, які залишаються на стабільній одинадцятій гілці.

Редакційна AI-ілюстрація, створена для цього матеріалу; не входить до першоджерела.
Редакційна AI-ілюстрація, створена для цього матеріалу; не входить до першоджерела.

Секрети більше не повинні потрапляти до логів

Помилки завантаження, розпакування tarball і повідомлення про повторні спроби тепер приховують облікові дані в URL, рядок запиту та fragment. Це важливо для CI, де журнал збірки можуть бачити багато учасників або зберігати зовнішня система. Токен у query string чи паролі в URL не повинні ставати частиною діагностичного повідомлення.

Маскування логів не скасовує базових правил роботи із секретами. Токени потрібно зберігати у захищених змінних середовища, обмежувати їхні права та відкликати після витоку. Оновлення зменшує один канал випадкового розголошення, але не захищає секрет, який уже надрукував сторонній скрипт.

Захист lock-файла та symbolic link

Команда виправила гонку під час оновлення конфігураційних залежностей, яка могла перенаправити запис lock-файла через symbolic link. Водночас pnpm install знову приймає symlinked lockfile, коли конфігураційні залежності не змінювалися. Якщо вони змінюються, запис через символічне посилання залишається заблокованим.

Такий поділ важливий: читання незмінного файла та небезпечний запис за перенаправленим шляхом — різні операції. Оновлення відновлює робочий сценарій без послаблення обмеження на запис. Також зберігаються lock-файли з byte order mark.

Політики довіри для remove й update

Команди pnpm remove та pnpm update тепер приймають параметри trust-lockfile, trust-policy, trust-policy-exclude і trust-policy-ignore-after разом із заперечними варіантами. За замовчуванням remove перевіряє весь lock-файл проти активної політики, якщо користувач явно не позначив його як довірений.

Виправлено й заборону build-скриптів: pnpm add із allow-build у заперечній формі тепер коректно блокує збірку пакета, включно з глобальним встановленням. approve-builds може зберегти рішення навіть тоді, коли пакет зараз не очікує схвалення, але попереджає про це.

Новий контроль версій пакетів у CI

Команда pnpm change check перевіряє версії пакетів за групами versioning.epics і versioning.fixed у pnpm-workspace.yaml. Для монорепозиторію це дає окремий автоматичний крок, який може зупинити pull request із неузгодженими версіями до публікації.

Каталоги тепер здатні розв’язувати workspace-залежності через протокол workspace:. Водночас локальні шляхи, tarball і workspace:<path> більше не переносяться до каталогу автоматично через catalogMode або save-catalog, що запобігає небажаній зміні специфікатора.

Виправлення встановлення й deploy

Усунено періодичний ENOENT, коли паралельні інсталяції використовували спільне сховище й одночасно імпортували файл пакета. Виправлено встановлення linked local dependency з peer-залежністю, яку також надає предок. Автоматично встановлені optional peer тепер мають відповідати власному діапазону, навіть якщо корінь workspace використовує іншу версію.

pnpm deploy більше не вимагає injectWorkspacePackages. Якщо peer workspace-залежності має кілька можливих версій, команда повертає окрему помилку з переліком конфліктів і пропонує зафіксувати версію через overrides. Це краще, ніж непомітно обрати неоднозначний варіант.

Аудит і робота з реєстрами

pnpm audit --fix тепер працює без значення та перед іншими прапорцями, а режим override враховує saveExact і savePrefix. Ігноровані advisories виключаються із загальної кількості вразливостей та показуються окремо — звіт стає точнішим, але ігнорований ризик не зникає.

Додано підтримку web authentication або одноразового пароля для 2FA-перевірки під час pnpm unpublish. Завантаження Node.js через nodeDownloadMirrors використовує облікові дані, прив’язані до URL, включно з bearer token, basic auth і tokenHelper.

Практичний план оновлення

Командам на pnpm 11 варто перевірити 11.26 у тестовій гілці: виконати чисте встановлення, audit, deploy та паралельний CI-сценарій. Окремо перегляньте diff lock-файла й журнали на відсутність URL-секретів. Для pnpm 12 це не заміна версії 12.3.4, про яку сайт повідомляв раніше.

Головне: реліз корисний не однією гучною функцією, а сукупністю захисних і операційних виправлень: чистіші логи, безпечніший запис, точніші політики та менше випадкових збоїв у монорепозиторіях.

Спонсорські банери та логотипи з release page не переносилися. Матеріал базується лише на технічних змінах офіційного репозиторію.

Першоджерело та ліцензія

Першоджерело: pnpm releases. Автори: pnpm contributors. Текст перекладено й адаптовано редакцією; пояснення та практичні висновки додано. Ліцензія першоджерела: MIT.

Copyright (c) 2015-2016 Rico Sta. Cruz and other contributors; Copyright (c) 2016-2026 Zoltan Kochan and other contributors.

MIT permission notice: Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Першоджерело:pnpm releases ↗
Автор:pnpm contributors
Ліцензія:MIT ↗

Матеріал перекладено, переказано та доповнено редакцією українською мовою.

</>

Читайте далі — ми вже розбираємо наступну важливу тему.

Далі за темою

Схожі матеріали