Кэш офлайн
Кэш офлайн — это функция, которая позволяет Yarn работать без проблем даже при отключении сети по любой причине — будь то из-за несвоевременной оплаты счетов со стороны работодателя или из-за недоступности места размещения ваших пакетов. Это также важная часть Zero-Installs и не хранит больше одного файла для каждого пакета, что делает его подходящим для хранения в репозитории, как это делается в самом репозитории Yarn.
Его работа проста: каждый раз, когда пакет загружается из удаленного расположения («удаленное» — это общее понятие в данном контексте: у зависимостей, указанных через file: протокол, тоже есть удаленное расположение, даже если в их случае это будет локальная файловая система), копия будет сохранена в кэше. В следующий раз, когда этот же пакет потребуется установить, Yarn воспользуется версией, сохранённой в кэше, вместо загрузки исходного источника.
Расположение локального кэша относительно корня проекта можно настроить с помощью параметра конфигурации cacheFolder. По умолчанию он .yarn/cache.
Отключение кэша
Поскольку кэш офлайн используется для работы PnP (файлы читаются непосредственно из архивов zip), отключить кэш нельзя. Однако, если необходимо, можно полностью удалить папку кэша — она будет просто пересоздана при следующем запуске yarn install.
Локальный кэш можно отключить, разделив доступ к кэшу, в этом случае будет использоваться глобальный кэш.
Глобальный зеркало можно отключить, используя параметр конфигурации enableMirror. Это не рекомендуется при использовании локального кэша, так как глобальное зеркало — это абстракция между локальным кэшем и сетью, хранящая все загруженные пакеты для будущего использования, чтобы сократить время установки.
Очистка кэша
Yarn автоматически очищает кэш от ненужных пакетов, когда вы удаляете или обновляете их. В случае необходимости ручного удаления кэша, вы можете использовать команду yarn cache clean.
Однако глобальное зеркало необходимо очищать вручную, используя команду yarn cache clean --mirror.
Общий доступ к кэшу
Начиная с Yarn v2, Yarn по умолчанию настраивает кэш локально для вашего проекта. Это делается для того, чтобы было проще хранить его в вашем репозитории, что, по нашему мнению, является лучшим способом гарантировать, что ваши проекты по-прежнему будут устанавливаться без проблем независимо от доступности регистров пакетов.
Тем не менее, это может не иметь смысла во всех случаях. Например, вы можете работать над небольшой библиотекой и не заботиться о проверке включения вашего кэша. Если это ваш случай, добавьте следующую строку в файл .yarnrc.yml локально в вашем проекте. Это даст указание Yarn использовать специальный путь, который будет общий для всех проектов, которые указывают такую же конфигурацию:
enableGlobalCache: trueРасположение общего кэша всегда <globalFolder>/cache, что соответствует расположению глобального зеркала.
Целостность кэша
Поскольку контрольные суммы архивов хранятся в файле блокировки, любая порча кэша будет обнаружена во время установки, и вас попросят решить проблему — либо удалив поврежденный файл, либо обновив контрольную сумму. Последнее следует делать только опытным пользователям в крайне специфических случаях.
© 2016–present Yarn Contributors
Licensed under the BSD License.
https://v3.yarnpkg.com/features/offline-cache