翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
アップストリームリポジトリを持つパッケージバージョンのリクエスト
次の例は、パッケージマネージャーがアップストリームリポジトリを持つパッケージリポジトリからパッケージを CodeCatalyst リクエストする場合のシナリオを示しています。
この例では、 などのパッケージマネージャーは、複数のアップストリームリポジトリを持つ という名前のパッケージリポジトリからパッケージバージョンdownstream
をnpm
リクエストします。パッケージがリクエストされると、次のことが発生する可能性があります。
-
リクエストされたパッケージバージョンが
downstream
に含まれる場合、クライアントにリターンされます。 -
にリクエストされたパッケージバージョンが含まれ
downstream
ていない場合、 は設定された検索順序でdownstream
のアップストリームリポジトリでそのバージョン CodeCatalyst を検索します。パッケージバージョンが見つかると、そのバージョンへのリファレンスがdownstream
にコピーされます、そしてパッケージのバージョンがクライアントに返されます。 -
downstream
またはアップストリームリポジトリにパッケージバージョンが含まれていない場合、404 HTTPNot Found
レスポンスがクライアントに返されます。
1 つのリポジトリに許可される直接アップストリームリポジトリの最大数は 10 です。パッケージバージョンがリクエストされたときに で CodeCatalyst 検索されるリポジトリの最大数は 25 です。
アップストリームリポジトリからのパッケージの保持
リクエストされたパッケージバージョンがアップストリームリポジトリで見つかった場合、そのバージョンへの参照は保持され、リクエストしたリポジトリで常に使用できます。これにより、アップストリームリポジトリが予期せず停止した場合、パッケージにアクセスできます。保持されたパッケージバージョンは、次のいずれの影響も受けません:
-
アップストリームリポジトリの削除。
-
アップストリームリポジトリのダウンストリームリポジトリからの切断。
-
アップストリームリポジトリからのパッケージバージョンの削除。
-
アップストリームリポジトリのパッケージバージョンの編集(例えば、新しいアセットを追加するなど)。
アップストリームリレーションシップによるパッケージの取得
CodeCatalyst は、アップストリームリポジトリと呼ばれる複数のリンクされたリポジトリを介してパッケージを取得できます。 CodeCatalyst パッケージリポジトリにゲートウェイリポジトリへのアップストリーム接続を持つ別の CodeCatalyst パッケージリポジトリへのアップストリーム接続がある場合、アップストリームリポジトリにないパッケージのリクエストは外部リポジトリからコピーされます。例えば、 という名前のリポジトリrepo-A
がゲートウェイリポジトリ へのアップストリーム接続を持つとしますnpm-public-registry-gateway
。 npm-public-registry-gateway
はパブリックパッケージリポジトリ へのアップストリーム接続を持つとしますhttps://npmjs.com
repo-A
リポジトリを使用するように がnpm
設定されている場合、 を実行すると、 から https://npmjs.comnpm install
が開始されますnpm-public-registry-gateway
。インストールされているバージョンもrepo-A
プルされます。次の例では、lodash
がインストールされます。
$ npm config get registry https://packages.
region
.codecatalyst.aws/npm/space-name
/proj-name
/repo-name
/ $ npm install lodash + lodash@4.17.20 added 1 package from 2 contributors in 6.933s
の実行後npm install
、 には最新バージョン (lodash 4.17.20
) のみrepo-A
が含まれます。これは、 npm
から によって取得されたバージョンであるためですrepo-A
。
npm-public-registry-gateway
には への外部アップストリーム接続があるためhttps://npmjs.comnpm-public-registry-gateway
。これらのパッケージバージョンは、 につながるアップストリーム接続を持つダウンストリームリポジトリによって取得された可能性がありますnpm-public-registry-gateway
。
の内容は、 からhttps://npmjs.comnpm-public-registry-gateway
を提供します。
中間リポジトリでのパッケージの保持
CodeCatalyst では、アップストリームリポジトリを連鎖できます。例えば、 repo-A
はアップストリームリポジトリrepo-B
として、 repo-B
はアップストリームリポジトリrepo-C
として使用できます。この設定により、repo-B
とrepo-C
にあるパッケージバージョンがrepo-A
から入手可能になります。
パッケージマネージャーがリポジトリに接続repo-A
し、リポジトリ からパッケージバージョンを取得するとrepo-C
、パッケージバージョンはリポジトリ に保持されませんrepo-B
。パッケージバージョンは、最も遠いダウンストリームリポジトリにのみ保持されます。この例では ですrepo-A
。中間リポジトリには保持されません。これは、長いチェーンにも当てはまります。例えば、、、repo-A
、repo-B
repo-C
および の 4 つのリポジトリがありrepo-D
、 repo-A
からパッケージバージョンを取得するために接続されているパッケージマネージャーがある場合、パッケージバージョンは に保持されますrepo-A
がrepo-D
、 repo-B
または には保持されませんrepo-C
。
パッケージの保持動作は、パブリックパッケージリポジトリからパッケージバージョンをプルする場合も同様です。ただし、パッケージバージョンは常にパブリックリポジトリへの直接アップストリーム接続を持つゲートウェイリポジトリに保持されます。例えば、 repo-A
はアップストリームリポジトリrepo-B
として を持ちます。 repo-B
はアップストリームリポジトリnpm-public-registry-gateway
として を持ち、パブリックリポジトリ npmjs.com へのアップストリーム接続があります。以下の図を参照してください。
に接続されたパッケージマネージャーが特定のパッケージバージョン、例えば lodash 4.17.20 をrepo-A
リクエストし、そのパッケージバージョンが 3 つのリポジトリのいずれにも存在しない場合、npmjs.com から取得されます。lodash 4.17.20 がフェッチされると、最も遠いダウンストリームリポジトリrepo-A
として に保持され、パブリック外部リポジトリ npm-public-registry-gateway
npmjs.com へのアップストリーム接続があります。lodash 4.17.20 は中間リポジトリrepo-B
であるため、 には保持されません。