Verdaccio

Verdaccio

  • Документация
  • Блог
  • Twitter
  • Помощь
  • GitHub
  • Команда
  • Sponsor Us
  • Languages iconRussian
    • English
    • Español
    • Français
    • 中文
    • Yoruba
    • Помочь перевести

›Uses Cases

Введение

  • Что такое Verdaccio?
  • Установка
  • Инструмент командной строки
  • Using a private registry
  • Кто использует Verdaccio?
  • Политика безопасности
  • Логотип
  • Uses Cases

    • End to End тестирование
    • Стратегии кэширования
    • GitHub Actions
    • Связь с удалённым репозиторием

    Talks & Articles

    • Статьи
    • Выступления

Features

  • Файл конфигурации
  • Аплинки
  • Доступ к пакетам
  • Аутентификация
  • Уведомления
  • Логи
  • Веб-интерфейс пользователя

Сервер

  • Конфигурация сервера
  • Настройка reverse proxy
  • Настройка SSL-сертификатов
  • Установка в качестве службы Windows
  • Установка на IIS сервер

Разработка

  • Плагины
  • Разработка плагинов
  • Dev Guides

    • Plugin Generator
    • Плагин аутентификации
    • Middleware плагин
    • Плагин хранилища
  • Node API

DevOps

  • Docker
  • Kubernetes
  • Непрерывная интеграция (CI)
  • Cloud

    • Amazon Web Services

    Tools

    • Ansible
    • Puppet
    • Поваренная книга

Руководства

  • Лучшие практики
  • Защита пакетов
  • Amazon Web Services
Translate

Стратегии кэширования

Verdaccio кэширует все пакеты по умолчанию в папку /storage. Но если вы хотите, вы можете перейти на другие стратегии. С помощью плагинов вы можете использовать облако или любую базу данных.

Сценарии кэширования

  • Сборка проекта на Node.js project на серверах непрерывной интеграции (Bamboo, GitLab, Jenkins, и т.д.) - это задача, которая может выполняться несколько раз в день, при этом сервер каждый раз будет загружать кучи tar-файлов. Ведь обычно CI-инструменты очищают кэш после каждой сборки, и процесс загрузки каждый раз начинается заново. Это напрасная нагрузка на сеть и напрасная трата трафика. Вы можете использовать Verdaccio для кэширования tar-файлов и метаданных в своей внутренней сети и этим ускорить сборку.
  • Задержка и Доступность, не во всех странах есть высокоскоростное соединение. По этой причине, иметь кэшированные в вашей сети пакеты - очень удобно. Или вы путешествуете, или у вас слабое соединение, или роуминг, или вы находитесь в стране с сильным фаерволом, который может повлиять на пользовательский опыт (в смысле: повредить tar-файлы).
  • Офлайновый режим, все менеджеры пакетов в наши дни имеют свой внутренний кэш, но обычно у каждого проекта свой инструментарий, своя система блокировки файлов и т.д. Это делает невозможным использование общего кэша, и требуется централизованное решение, например, проксирующий репозиторий Verdaccio, который кэширует метаданные и tar-файлы, загруженные по требованию пользователя, и позволяет совместно их использовать.
  • Позволяет избегнуть ситуации, когда удаленный репозиторий пакетов возвращает ошибку HTTP 404 для tar-файлов, которые были доступны совсем недавно (a.k.a случай с left-pad).

Стратегии для ускорения сборки

Мы ищем новые стратегии, не стесняйтесь делиться опытом на этом поле.

Отключение кэширования tar-файлов

Если у вас не так много места, вам может понадобится отключение кэширования tar-файлов, установите cache в значение false для каждого аплинка, и только метаданные будут кэшироваться.

uplinks:
  npmjs:
    url: https://registry.npmjs.org/
    cache: false

Увеличение времени жизни метаданных

По умолчанию, время жизни метаданных в кэше Verdaccio составляет 2 минуты, после чего метаданные будут снова запрошены из удаленного репозитория.

uplinks:
  npmjs:
    url: https://registry.npmjs.org/
    maxage: 30m

Если увеличить значение maxage для каждого аплинка, удаленный репозиторий будет опрашиваться реже. Это может стать отличной стратегией, если ваши зависимости обновляются не слишком часто.

Использование памяти вместо диска

Иногда закэшировать пакеты не так важно, а важно получить их из разных репозиториев и ускорить сборку. Есть два плагина, которые позволяют избежать записи пакетов на диск, и хранить их в памяти.

  npm install -g verdaccio-auth-memory
  npm install -g verdaccio-memory

Конфиграция выглядит примерно так

auth:
  auth-memory:
    users:
      foo:
        name: test
        password: test
store:
  memory:
    limit: 1000

Помните, что когда сервер будет перезапущен, все данные будут потеряны, поэтому мы рекомендуем этот вариант в случаях, когда вам вообще не нужно хранить пакеты.

← End to End тестированиеGitHub Actions →
  • Сценарии кэширования
  • Отключение кэширования tar-файлов
  • Увеличение времени жизни метаданных
  • Использование памяти вместо диска
Verdaccio
Docs
Getting StartedDockerConfigurationLogos
Community
User ShowcaseStack OverflowProject ChatFollow Verdaccio on Twitter
More
BlogGitHubStar