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

pnpm 10.14

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

Додано підтримку визначення середовища виконання JavaScript

Вкажіть Node.js, Deno або Bun у devEngines.runtime (всередині package.json) і дозвольте pnpm завантажити і закріпити його автоматично.

Приклад використання:

{
"devEngines": {
"runtime": {
"name": "node",
"version": "^24.4.0",
"onFail": "download" // we only support the "download" value for now
}
}
}

Як це працює:

  1. pnpm install обробляє вказаний вами діапазон для отримання останньої відповідної версії середовища виконання.
  2. Точна версія (та контрольна сума) зберігається у файлі блокування.
  3. Скрипти використовують локальне середовище виконання, забезпечуючи узгодженість між середовищами.

Чому це краще:

  1. Цей новий параметр також підтримує Deno та Bun (на відміну від наших налаштувань лише для Node useNodeVersion та executionEnv.nodeVersion)
  2. Підтримуються діапазони версій (не лише фіксована версія).
  3. Отримана версія зберігається у файлі блокування pnpm разом з контрольною сумою цілісності для подальшої перевірки справжності вмісту Node.js.
  4. Можна використовувати в будь-якому проєкті робочого простору (наприклад, executionEnv.nodeVersion). Отже, різні проєкти в робочому просторі можуть використовувати різні середовища виконання.
  5. Наразі налаштування devEngines.runtime встановлює середовище виконання локально, але в майбутніх версіях pnpm ми вдосконалимо це, використовуючи спільне розташування на компʼютері.

Див. PR: #9755.

Інші нові функції

  • Додано --cpu, --libc та --os до pnpm install, pnpm add та pnpm dlx для налаштування supportedArchitectures через CLI #7510.

Виправлення помилок

  • Виправлено помилку, через яку pnpm add завантажує пакунки, libc яких відрізняється від pnpm.supportedArchitectures.libc.
  • Цілісність завантажених Node.js артефактів тепер перевіряється #9750.
  • Дозволено dlx аналізувати прапорці та опції командного рядка між командою dlx та командою для запуску або між командою dlx та -- #9719.
  • Команда pnpm install --prod має видалити підняті залежності розробника #9782.
  • Виправлено помилку, через яку локальні архівні файли не перестворювали link у віртуальному сховищі. Ця помилка виникала при зміні вмісту архіву tar без перейменування файлу та запуску фільтрованої інсталяції.
  • Виправлено помилку, через яку pnpm install неправильно вважав, що файл блокування є актуальним після зміни локального архіву, що має залежні компоненти.