Skip to main content

Аплинки

Аплинк - это соединение с внешним репозиторием, через которое идет доступ к внешним пакетом.

Аплинки

Использование

uplinks:
npmjs:
url: https://registry.npmjs.org/
server2:
url: http://mirror.local.net/
timeout: 100ms
server3:
url: http://mirror2.local.net:9000/
baduplink:
url: http://localhost:55666/

Configuration

Вы можете определить несколько аплинков и каждый из них должен иметь уникальное имя (ключ). Они могут иметь следующие свойства:

СвойствоТипОбязательноеПримерПоддержкаОписаниеПо умолчанию
urlstringДаhttps://registry.npmjs.org/всеURL репозиторияnpmjs
castringНет~./ssl/client.crt'всепуть к сертификату SSLнет значения
timeoutstringНет100msвсетаймаут для запроса30s
maxagestringНет10mвсевременный порог валидности кэша2m
fail_timeoutstringНет10mвсевремя, через которое непрошедший запрос считается неудачным5m
max_failsnumberНет2всемаксимальное количество недачных запросов2
cachebooleanНет[true,false]>= 2.1кэшировать tar-файлы пакетов или нетtrue
authlistНетсм. ниже>= 2.5хедер 'Authorization' больше инфоdisabled
headerslistНетauthorization: "Bearer SecretJWToken=="всесписок хедеров для аплинкаdisabled
strict_sslbooleanНет[true,false]>= 3.0если true, то SSL сертификат будет проверяться на валидность.true
agent_optionsobjectНетmaxSockets: 10>= 4.0.2options for the HTTP or HTTPS Agent responsible for managing uplink connection persistence and reuse more infoнет значения

Свойство Auth

Свойство auth позволяет вам использовать токен авторизации для аплинка. Используя переменную окружения по умолчанию:

uplinks:
private:
url: https://private-registry.domain.com/registry
auth:
type: bearer
token_env: true # defaults to `process.env['NPM_TOKEN']`

или задав явно переменную окружения:

uplinks:
private:
url: https://private-registry.domain.com/registry
auth:
type: bearer
token_env: FOO_TOKEN

token_env: FOO_TOKEN verdaccio-сервер будет использовать process.env['FOO_TOKEN']

или напрямую указав токен:

uplinks:
private:
url: https://private-registry.domain.com/registry
auth:
type: bearer
token: "token"

Заметьте: token имеет приоритет над token_env

Вы должны знать

  • Аплинки должны быть репозиториями, которые совместимы с npm по эндпоинтам. Например: verdaccio, sinopia@1.4.0, репозиторий npmjs registry, репозиторий yarn, JFrog, Nexus и другие.
  • Установка cache в значение false позволит сохранить место на диске. Это позволит избежать хранения tar-файлов, но сохранит метаданные пакетов.
  • Увеличение числа аплинков может замедлить поиск пакетов, так как для каждого запроса пакета через клиентскую часть менеджера пакетов, verdaccio делает по 1 запросу во все аплинки.
  • Формат настроек (timeout, maxage and fail_timeout) следует документу NGINX measurement units