Цель этого усилия - проверить, существует ли версия пакета в частном реестре , не касаясь файловой системы / файлов конфигурации . Для пакетов в реестрах publi c это совершенно просто: npm view lpad@2.0.1
производит некоторую информацию об этой опубликованной версии, но (на момент написания) npm view lpad@201.0.0
не имеет никакой информации или вывода. Я использую это для вывода о существовании пакетов.
Я также могу передать частный URL-адрес реестра в npm view <packagename>
, как в npm view <packagename> --registry https://private.registry/path/
. Это похоже на частный реестр, хотя это явно не упомянуто в npm-view
документации (но это описано в npm-search
документации , так что я понимаю это как это документированная функция API).
Чтобы вообще иметь возможность общаться с частными реестрами, я могу использовать токен аутентификации в запросе в соответствии с этими npm инструкциями для выполнения этого в CI / Рабочий процесс с CD : поместите его в файл .npmrc
следующим образом:
//your_registry/:_authToken 12345
Или, более надежно, //your_registry/:_authToken $TOKEN
и установите для переменной среды TOKEN
значение 12345
в другом месте.
Что я не могу выяснить, как это сделать, это использовать npm view
против частного npm
реестра, без записи в файл .npmrc
.
Я планирую выполнять несколько запросов параллельно с одной и той же машины, поэтому, чтобы избежать условий гонки в файле .npmrc
, я бы предпочел пройти аутентификацию непосредственно в каждой команде. Я предполагаю, что с токеном аутентификации это просто простая команда curl
, но мне не повезло найти информацию о том, как работает NPM API. (npm-registry-client
, похоже, ничего не делает для просмотра / поиска; он имеет access
, который устанавливает уровень доступа).
Есть ли я упустить что-то ослепительно очевидное? Где найти руководство по формату запроса для просмотра и / или поиска в реестре NPM? Что такое команда curl
, которая включает отправку токена авторизации, имени пакета и версии и получает некоторые указания на то, существует ли она?