この取り組みの目的は、パッケージ バージョンがプライベート レジストリに存在するかどうかを、ファイル システムや構成ファイルに触れることなくテストできるようにすることです。公開レジストリのパッケージの場合、これは完全に単純です。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 機能であると解釈します)。
プライベート レジストリと通信できるようにするために、CI/CD ワークフローで実行するための npm の指示.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
認証トークン、パッケージ名、およびバージョンの送信を含み、存在するかどうかの何らかの指示を受け取るコマンドは何ですか?