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

2 постів з тегом "release"

Переглянути усі теґи

pnpm 10.15

· 2 хв читання
Zoltan Kochan
Lead maintainer of pnpm

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

Нові налаштування для каталогів

Додано конфігурацію cleanupunusedCatalogs. Якщо встановлено значення 'true', pnpm видалить невикористані записи каталогів під час встановлення #9793.

Покращення залежностей конфігурації

pnpm тепер автоматично завантажуватиме файли pnpm з config dependencies, які мають імена @*/pnpm-plugin-* #9780.

Зміни в конфігурації команд get/set

  • 'pnpm config get' тепер виводить рядок INI для значення обʼєкта #9797.

  • pnpm config get тепер приймає шляхи властивостей.

    Наприклад:

    pnpm config get catalog.react
    pnpm config get .catalog.react
    pnpm config get 'packageExtensions["@babel/parser"].peerDependencies["@babel/types"]'

    pnpm config set тепер приймає ключі з крапкою на початку або з індексом.

    Наприклад:

    pnpm config set .ignoreScripts true
  • Команда pnpm config get --json тепер видає JSON-серіалізацію значення конфігурації, а pnpm config set --json тепер аналізує вхідне значення як JSON.

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

  • Напівруйнівні. Під час автоматичного встановлення відсутніх залежностей вузлів віддавайте перевагу версіям, які вже присутні в прямих залежностях пакунка кореневого робочого простору #9835.
  • Під час виконання команди pnpm create необхідно перевірити, чи підтримується версія вузла, навіть якщо кеш вже існує #9775.
  • Коли ви створюєте запити до пакунка, що не скорочується, додайте */* до Accept заголовка, щоб уникнути помилки 406 у AWS CodeArtifact #9862.
  • Самостійна версія pnpm у форматі exe знову працює з glibc 2.26 #9734.
  • Виправлено регресію, в якій pnpm dlx pkg --help не передає --help до pkg #9823.

pnpm 10.14

· 2 хв читання
Zoltan Kochan
Lead maintainer of 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 неправильно вважав, що файл блокування є актуальним після зміни локального архіву, що має залежні компоненти.