pnpm 12: полная переработка на Rust с обратной совместимостью

Pnpm 12.0

Вышел pnpm 12 — стабильная версия, полностью переписанная на Rust. Это не миграция: все команды, флаги, настройки и формат lockfile из pnpm 11 сохранены. Среди ключевых изменений — каноническое разрешение циклических зависимостей, ускорение peer resolution в 2–3 раза, поддержка ревизий реестра для замены артефактов без изменения версий, установка других пакетных менеджеров (npm, Yarn, Bun), а также улучшенная обработка git-зависимостей и распознавание опечаток в настройках.

Каноническое разрешение peer-зависимостей теперь делает lockfile чистой функцией графа зависимостей: перестановка импортеров, изменение порядка зависимостей и повторные установки дают байт-идентичные lockfile, чего раньше не было.
  1. BlueGreenMagick

    > Это переписывание pnpm на Rust

    Их бенчмарки[0] показывают, что чистая установка с lockfile примерно в 3 раза быстрее (7с -> 2.2с), а установка без изменений — примерно в 29 раз быстрее (517мс -> 18мс)

    [0]: https://pnpm.io/benchmarks

  2. 1matin

    Когда видишь много длинных тире (—) в тексте, есть большая вероятность, что это написал Claude.

  3. deanc

    Мне интересно, так как это не упоминается, есть ли какие-то улучшения производительности в рамках этого переписывания?

  4. norman784

    Я пришел к выводу, что скучное — это достаточно хорошо. Для меня NPM — лучший инструмент: он не такой быстрый, но скорость установки не так уж плоха, учитывая, как часто мне нужно запускать с нуля, разница не имеет значения. Он стабилен и является менеджером пакетов по умолчанию в Node, так что мне не нужно заморачиваться с установкой других инструментов в CI и т.д. Мой опыт для долгоживущих проектов — придерживаться стандартных решений, потому что через несколько лет сторонние инструменты меняются. Так случилось с моей командой с Yarn classic; теперь, когда мы на ванильном Node и NPM, нет проблем. То же самое с сторонними зависимостями: просто используй как можно меньше.

  5. fwlr

    Пришлось проверить календарь, чтобы убедиться, что это не первое апреля. Нет, сейчас август. Хм.

    Я не понимаю, как мейнтейнеры pnpm могут не знать историю с bun и переписыванием на Rust через ИИ... так что я озадачен, сбит с толку и вообще не могу понять это решение.

Ещё за этот день

2026-08-27