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

pnpm 10.29

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

pnpm 10.29 додає підтримку протоколу catalog: до pnpm dlx, дозволяє налаштовувати auditLevel у pnpm-workspace.yaml, підтримує порожній специфікатор workspace: та містить кілька виправлень помилок.

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

'catalog:' Протокол у 'pnpm dlx'

Команда 'pnpm dlx' / 'pnpx' тепер підтримує протокол 'catalog:', що дозволяє звертатися до версій, визначених у каталогах робочого простору:

pnpm dlx shx@catalog:

Налаштування 'auditLevel'

'auditLevel' тепер можна налаштувати у файлі 'pnpm-workspace.yaml', тож не потрібно передавати '--audit-level' при кожному виклику 'pnpm audit' #10540:

pnpm-workspace.yaml
auditLevel: high

workspace: Протокол

Тепер підтримується специфікатор workspace: без діапазону версій. It is treated as workspace:* and resolves to the concrete version during publish #10436:

{
"dependencies": {
"foo": "workspace:"
}
}

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

  • Виправлено помилку нестачі памʼяті в pnpm list (та pnpm why) на великих графах залежностей шляхом заміни рекурсивного конструктора дерев двофазним підходом: граф залежностей BFS з подальшою матеріалізацією кешованого дерева. Дублікати піддерев тепер видаляються у виводі #10586.
  • Виправлено помилку allowBuilds не працює, якщо встановити через .pnpmfile.cjs #10516.
  • Коли встановлено enableGlobalVirtualStore, pnpm deploy тепер ігнорує його та завжди створює локалізоване віртуальне сховище в теці розгортання, щоб забезпечити його автономність.
  • Виправлено ситуацію, коли pnpm dlx не враховував параметр minimumReleaseAgeExclude #10338.
  • Виправлено помилку, через яку команда pnpm list --json повертала неправильні шляхи при використанні глобального віртуального сховища #10187.
  • Виправлено поведінку команд pnpm store path та pnpm store status: тепер для визначення шляху використовується коренева тека робочого простору, якщо параметр storeDir вказано у відносному форматі #10290.
  • Виправлено ситуацію, коли під час повторного додавання наявної залежності каталогу до файлу pnpm-workspace.yaml записувався літеральний рядок catalog: замість визначеного специфікатора версії #10176.
  • Пропускати локальні залежності протоколу file: під час виконання команди pnpm fetch, що дозволяє виправити збірку в Docker, коли локальні теки залежностей недоступні #10460.
  • Виправлено роботу команди pnpm audit --json так, щоб вона враховувала параметр --audit-level як для коду завершення, так і для фільтрації виводу #10540.
  • Оновлено tar до версії 7.5.7 для виправлення вразливості безпеки (CVE-2026-24842).
  • Виправлено: команда pnpm audit --fix тепер замінює перевизначення посилань (наприклад, $foo) на конкретні версії #10325.
  • Виправлено: параметр shamefullyHoist, заданий за допомогою updateConfig у файлі .pnpmfile.cjs, не перетворювався на publicHoistPattern #10271.
  • Команда pnpm help тепер правильно повідомляє, чи входить поточна версія командного рядка pnpm до складу Node.js #10561.
  • Додано попередження, якщо поточна тека містить символ-роздільник PATH, що може призвести до збою вставці шляху node_modules/.bin #10457.
  • Виправлено URL-адресу документації, що показується в pnpm completion --help, щоб вона вказувала на правильну сторінку #10281.