Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Meminta versi paket dengan repositori hulu
Contoh berikut menunjukkan skenario yang mungkin ketika manajer paket meminta paket dari repositori CodeCatalyst paket yang memiliki repositori upstream.
Untuk contoh ini, manajer paket, sepertinpm
, meminta versi paket dari repositori paket bernama downstream
yang memiliki beberapa repositori upstream. Ketika paket diminta, hal berikut dapat terjadi:
-
Jika
downstream
berisi versi paket yang diminta, akan dikembalikan ke klien. -
Jika
downstream
tidak berisi versi paket yang diminta, CodeCatalyst cari di repositori upstream, dalamdownstream
urutan pencarian yang dikonfigurasi. Jika versi paket ditemukan, referensi untuk itu akan disalin kedownstream
, dan versi paket dikembalikan ke klien. -
Jika tidak ada
downstream
atau repositori upstream yang berisi versi paket,Not Found
respons HTTP 404 dikembalikan ke klien.
Jumlah maksimum repositori hulu langsung yang diizinkan untuk satu repositori adalah 10. Jumlah maksimum repositori yang CodeCatalyst dicari saat versi paket diminta adalah 25.
Retensi paket dari repositori hulu
Jika versi paket yang diminta ditemukan di repositori upstream, referensi untuk itu dipertahankan dan selalu tersedia di repositori yang memintanya. Ini memastikan bahwa Anda memiliki akses ke paket Anda jika ada pemadaman tak terduga dari repositori upstream. Versi paket yang dipertahankan tidak terpengaruh oleh salah satu dari berikut ini:
-
Menghapus repositori hulu.
-
Memutuskan koneksi repositori hulu dari repositori hilir.
-
Menghapus versi paket dari repositori hulu.
-
Mengedit versi paket di repositori hulu (misalnya, dengan menambahkan aset baru ke dalamnya).
Mengambil paket melalui hubungan hulu
CodeCatalyst dapat mengambil paket melalui beberapa repositori tertaut yang disebut repositori upstream. Jika repositori CodeCatalyst paket memiliki koneksi upstream ke repositori CodeCatalyst paket lain yang memiliki koneksi upstream ke repositori gateway, permintaan paket yang tidak ada di repositori upstream disalin dari repositori eksternal. Misalnya, pertimbangkan konfigurasi berikut: repositori bernama repo-A
memiliki koneksi upstream ke repositori gateway,. npm-public-registry-gateway
npm-public-registry-gateway
memiliki koneksi hulu ke repositori paket publik,. https://npmjs.com

Jika npm
dikonfigurasi untuk menggunakan repo-A
repositori, menjalankan npm install
memulai penyalinan paket dari ke. https://npmjs.comnpm-public-registry-gateway
Versi yang dipasang juga ditarik ke dalam repo-A
. Contoh berikut menginstal 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
Setelah berjalannpm install
, hanya repo-A
berisi versi terbaru (lodash 4.17.20
) karena itulah versi yang diambil oleh npm
fromrepo-A
.
Karena npm-public-registry-gateway
memiliki koneksi upstream eksternal ke https://npmjs.comnpm-public-registry-gateway
. Versi paket ini dapat diambil oleh repositori hilir mana pun dengan koneksi hulu yang mengarah ke. npm-public-registry-gateway
Isi npm-public-registry-gateway
menyediakan cara bagi Anda untuk melihat semua paket dan versi paket yang diimpor dari waktu https://npmjs.com
Retensi paket dalam repositori menengah
CodeCatalyst memungkinkan Anda untuk rantai repositori hulu. Misalnya, repo-A
dapat memiliki repo-B
sebagai repositori upstream dan repo-B
dapat memiliki repo-C
sebagai repositori upstream. Konfigurasi ini membuat versi paket di repo-B
dan repo-C
tersedia dari repo-A
.

Ketika manajer paket terhubung ke repositori repo-A
dan mengambil versi paket dari repositorirepo-C
, versi paket tidak dipertahankan dalam repositori. repo-B
Versi paket hanya disimpan di repositori hilir terjauh, yang dalam contoh ini adalah. repo-A
Itu tidak disimpan di repositori perantara apa pun. Ini juga berlaku untuk rantai yang lebih panjang; misalnya, jika ada empat repositori:repo-A
,repo-B
,repo-C
, danrepo-D
, dan manajer paket yang terhubung untuk repo-A
mengambil versi paket darirepo-D
, versi paket akan dipertahankan repo-A
tetapi tidak di atau. repo-B
repo-C
Perilaku retensi paket serupa saat menarik versi paket dari repositori paket publik, kecuali bahwa versi paket selalu dipertahankan di repositori gateway yang memiliki koneksi hulu langsung ke repositori publik. Misalnya, repo-A
memiliki repo-B
sebagai repositori hulu. repo-B
memiliki npm-public-registry-gateway
sebagai repositori upstream, yang memiliki koneksi upstream ke repositori publik, npmjs.com; lihat diagram di bawah ini.

Jika manajer paket terhubung untuk repo-A
meminta versi paket tertentu, lodash 4.17.20 misalnya, dan versi paket tidak ada di salah satu dari tiga repositori, itu akan diambil dari npmjs.com. Ketika lodash 4.17.20 diambil, itu dipertahankan karena itu adalah repositori hilir terjauh dan repo-A
npm-public-registry-gateway
karena memiliki koneksi hulu ke repositori eksternal publik, npmjs.com. lodash 4.17.20 tidak dipertahankan repo-B
karena itu adalah repositori perantara.