pnpm 12.19 проверяет требования каждого проекта в workspace

pnpm 12.19 проверяет требования каждого проекта в workspace
Содержание статьи

10 ноября вышел pnpm 12.19.0. Менеджер пакетов проверяет требования к среде у каждого проекта в workspace, включая корневой. Команда, которая запускает установку из корня монорепозитория, теперь увидит несовместимость, указанную в манифесте отдельного пакета. На Mentoring.digital разбираем, какие поля проверить перед обновлением.

Когда pnpm останавливает команду

pnpm install, add, update и remove проверяют engines, os, cpu и libc у проектов workspace. Для pnpm run -r и pnpm exec -r эта проверка проходит до запуска команд.

  • Несовпадение с engines.pnpm останавливает команду.
  • Несовпадение с engines.node приводит к предупреждению. При включённом engineStrict команда завершится ошибкой.
  • Неподдерживаемая платформа проекта даёт предупреждение. Если проект получает свою версию Node.js через devEngines.runtime, pnpm проверяет именно её.

Что сверить в монорепозитории

  1. Сопоставьте версию pnpm в CI и локальной среде с engines.pnpm во всех манифестах проекта.
  2. Уточните, какие ограничения нужны только одному пакету. Например, инструмент может требовать другую версию Node.js, чем приложение в соседнем каталоге.
  3. В отдельной ветке выполните обычную установку и команду, которую CI запускает рекурсивно. Проверьте, для какого проекта возникло сообщение и откуда берётся версия среды.

Если правила для приложений и общих библиотек расходятся, можно разобрать структуру монорепозитория с наставником по фронтенд-разработке.

Похожие статьи по данной теме