Перейти к содержимому

npm

NORA предоставляет полностью совместимый npm-реестр. Публикуйте приватные пакеты и прозрачно проксируйте публичные пакеты из официального реестра npm.

Направьте npm (или yarn/pnpm) на NORA:

Окно терминала
# npm
npm config set registry http://nora.example.com:4000/npm/
# yarn
yarn config set registry http://nora.example.com:4000/npm/
# pnpm
pnpm config set registry http://nora.example.com:4000/npm/

Публикация пакета:

Окно терминала
npm publish --registry http://nora.example.com:4000/npm/

Настройка .npmrc для конкретного проекта:

registry=http://nora.example.com:4000/npm/

Если пакет не найден локально, NORA загружает его из upstream-реестра. URL тарболов в метаданных перезаписываются для загрузки через NORA.

config.toml:

[npm]
enabled = true
proxy = "https://registry.npmjs.org"
proxy_timeout = 30
metadata_ttl = 300 # секунды

Переменные окружения:

ПеременнаяОписаниеПо умолчанию
NORA_NPM_ENABLEDВключить реестр npmtrue
NORA_NPM_PROXYURL upstream-реестраhttps://registry.npmjs.org
NORA_NPM_PROXY_AUTHАутентификация upstream (user:pass)
NORA_NPM_PROXY_TIMEOUTТаймаут upstream в секундах30
NORA_NPM_METADATA_TTLTTL кеша метаданных в секундах300
ФункцияСтатусПримечание
Метаданные пакета (GET)ПолнаяJSON со всеми версиями
Scoped-пакеты (@scope/name)ПолнаяURL-кодированный путь
Скачивание тарболовПолнаяПроверка SHA256
Перезапись URL тарболовПолнаяУказывает на NORA, а не на upstream
Публикация (npm publish)ПолнаяИммутабельные версии
Upstream-проксиПолнаяНастраиваемый TTL
UnpublishНе реализовано
Dist-теги (latest, next)ЧастичнаяЧитаются из метаданных, без явного управления
Поиск (/-/v1/search)Не реализовано
Аудит безопасностиНе реализовано
  • Unpublish не поддерживается — опубликованные версии являются иммутабельными.
  • Dist-теги считываются из upstream-метаданных, но не могут быть явно управляемы через NORA.
  • Поиск пакетов и endpoint аудита безопасности не реализованы.