Локальное зеркало npm пакетов с возможностью раздачи через собственный registry сервер.
- Создание локального зеркала npm пакетов
- Сохранение последних 20 версий (или больше) каждой библиотеки
- Собственный registry сервер для раздачи пакетов
- Совместимость со стандартным npm клиентом
- Структурированное хранение пакетов
- Отслеживание статистики роста количества пакетов
- Клонируйте репозиторий:
git clone <repository-url>- Установите зависимости:
npm install axios fs-extra semver express├── scripts/
│ ├── npm-mirror.js # Скрипт для создания зеркала
│ ├── fetch-packages-by-query.js # Скрипт для получения пакетов по поисковым запросам
│ ├── count-packages.js # Скрипт подсчета количества пакетов
│ ├── compare-package-counts.js # Скрипт сравнения статистики пакетов
│ └── merge-search-results.js # Скрипт объединения результатов поиска
├── server/
│ └── npm-mirror-server.js # Registry сервер
├── search-results/ # Директория с результатами поиска
├── package-counts/ # Директория со статистикой пакетов
└── npm-mirror/ # Директория с пакетами
- Получение списка пакетов
node scripts/fetch-packages-by-query.js- Объединение результатов поиска
node scripts/merge-search-results.js- Создание локального зеркала
node scripts/npm-mirror.js- Подсчет статистики пакетов
node scripts/count-packages.js- Сравнение статистики
node scripts/compare-package-counts.js- Запуск registry сервера Запустите локальный registry сервер:
node server/npm-mirror-server.jsСервер запустится на порту 8080.
Создайте .npmrc файл в корне вашего проекта:
registry=http://localhost:8080/SEARCH_QUERIES - список поисковых запросов CHUNK_SIZE - размер порции данных за запрос SAVE_THRESHOLD - порог для сохранения результатов
MIRROR_DIR - директория для сохранения пакетов VERSIONS_TO_KEEP - количество сохраняемых версий REGISTRY_URL - URL исходного npm registry
PORT - порт сервера MIRROR_DIR - директория с пакетами
GET /:package - получение метаданных пакета GET /:package/-/* - скачивание tarball файла пакета
Node.js 12+ npm 6+
Настройка HTTPS Настройка CORS Добавление кэширования Настройка логирования Добавление аутентификации