Репозитории формата npm работают со штатными клиентами npm, yarn и pnpm.
В примерах используются условные имена npm-proxy и npm-hosted.
Подключение к proxy
Укажите реестр в .npmrc:
registry=https://<GALLEON_HOST>/repository/npm-proxy/npm install lodashПриватные пакеты из hosted-репозитория подключаются привязкой области видимости к реестру — публичные пакеты продолжают идти через proxy:
@myscope:registry=https://<GALLEON_HOST>/repository/npm-hosted/Если чтение требует аутентификации, добавьте строки учётных данных и для читаемого репозитория — по образцу из раздела Публикация, с соответствующим адресом.
Публикация
Добавьте в .npmrc учётные данные hosted-репозитория —
логин и пароль либо «Name code» и «Pass code» токена (пароль кодируется в base64):
//<GALLEON_HOST>/repository/npm-hosted/:username=<USERNAME>
//<GALLEON_HOST>/repository/npm-hosted/:_password=<base64(<PASSWORD>)>
//<GALLEON_HOST>/repository/npm-hosted/:email=you@example.com
//<GALLEON_HOST>/repository/npm-hosted/:always-auth=truenpm publish --registry https://<GALLEON_HOST>/repository/npm-hosted/Опубликованные версии неизменяемы: повторная публикация той же версии отклоняется.
Особенности
Особенности формата:
- Теги распространения (
npm dist-tag add/rm/ls) поддерживаются, но тегlatestвручную переместить нельзя — он обновляется только публикацией. npm deprecateработает, в том числе для уже опубликованных версий.- Пакеты с областью видимости (
@scope/name) работают во всех клиентах. - В lock-файлы записываются адреса Galleon — ссылки на внешний реестр наружу не попадают.