pnpm 10.12 (v10.12.1) добавляет экспериментальный глобальный виртуальный магазин для почти мгновенной локальной установки

pnpmJavaScriptМонорепозиторииDevOps

Основное обновление

pnpm v10.12 (v10.12.1) включает экспериментальный режим "глобального виртуального магазина", который хранит наборы зависимостей, хешированные по их полному графу зависимостей, в центральном магазине и делает так, что node_modules проекта содержит только символические ссылки на этот общий магазин. Это позволяет различным проектам повторно использовать идентичные графы зависимостей без повторной распаковки или сборки их локально, обеспечивая почти мгновенные установки на машинах с теплым магазином. Включение функции явно задается (enableGlobalVirtualStore в pnpm-workspace.yaml или через pnpm config), и функция автоматически отключается в CI, где кэши обычно холодные. (github.com)

Почему это важно

Для инженеров, которые поддерживают несколько репозиториев или большие монорепозитории, глобальный виртуальный магазин меняет экономику локальной итерации: установки и переключение веток, которые ранее требовали повторной загрузки тысяч файлов пакетов, теперь могут быть сведены к операциям с символическими ссылками, когда графы совпадают, сокращая время ожидания разработчиков и преимущества теплого кэша CI. Это также практичная альтернатива контейнеризации всего, чтобы избежать долгих шагов установки. Предостережения, о которых стоит подумать, включают экспериментальный статус функции, изменение ключей кэша побочных эффектов (старые кэши могут быть проигнорированы, поэтому ожидайте одноразовых сборок) и тот факт, что жесткие ссылки и центральные магазины имеют разные разрешения и последствия хранения на некоторых файловых системах — поэтому проверьте на образах разработчиков перед широким развертыванием. (github.com)

Источник

Читать дальше