Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konfigurasikan dan gunakan npm dengan CodeArtifact
Setelah Anda membuat repositori di CodeArtifact, Anda dapat menggunakan klien npm untuk menginstal dan menerbitkan paket. Metode yang disarankan untuk mengonfigurasi npm dengan titik akhir repositori dan token otorisasi Anda adalah dengan menggunakan perintah. aws codeartifact login
Anda juga dapat mengonfigurasi npm secara manual.
Daftar Isi
Mengkonfigurasi npm dengan perintah login
Gunakan aws codeartifact login
perintah untuk mengambil kredensil untuk digunakan dengan npm.
catatan
Jika Anda mengakses repositori di domain milik Anda, Anda tidak perlu menyertakan --domain-owner
. Untuk informasi selengkapnya, lihat Domain lintas akun.
penting
Jika Anda menggunakan npm 10.x atau yang lebih baru, Anda harus menggunakan AWS CLI versi 2.9.5 atau yang lebih baru untuk berhasil menjalankan perintah. aws codeartifact login
aws codeartifact login --tool
npm
--domainmy_domain
--domain-owner111122223333
--repositorymy_repo
Perintah ini membuat perubahan berikut pada file ~/.npmrc Anda:
-
Menambahkan token otorisasi setelah mengambilnya dari CodeArtifact menggunakan kredensil Anda AWS .
-
Menetapkan registri npm ke repositori yang ditentukan oleh opsi
--repository
. -
Untuk npm 6 dan yang lebih rendah: Menambahkan
"always-auth=true"
sehingga token otorisasi dikirim untuk setiap perintah npm.
Periode otorisasi default setelah memanggil login
adalah 12 jam, dan login
harus dipanggil untuk menyegarkan token secara berkala. Untuk informasi selengkapnya tentang token otorisasi yang dibuat dengan perintah login
, lihat Token dibuat dengan perintah login.
Mengonfigurasi npm tanpa menggunakan perintah login
Anda dapat mengonfigurasi npm dengan CodeArtifact repositori Anda tanpa aws codeartifact login
perintah dengan memperbarui konfigurasi npm secara manual.
Untuk mengkonfigurasi npm tanpa menggunakan perintah login
Di baris perintah, ambil token CodeArtifact otorisasi dan simpan dalam variabel lingkungan. npm akan menggunakan token ini untuk mengautentikasi dengan repositori Anda. CodeArtifact
catatan
Perintah berikut adalah untuk mesin macOS atau Linux. Untuk informasi tentang mengonfigurasi variabel lingkungan pada mesin Windows, lihatTeruskan token auth menggunakan variabel lingkungan.
CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain
my_domain
--domain-owner111122223333
--query authorizationToken --output text`Dapatkan endpoint CodeArtifact repositori Anda dengan menjalankan perintah berikut. Endpoint repositori Anda digunakan untuk mengarahkan npm ke repositori Anda untuk menginstal atau menerbitkan paket.
Ganti
my_domain
dengan nama CodeArtifact domain Anda.Ganti
111122223333
dengan ID AWS akun pemilik domain. Jika Anda mengakses repositori di domain milik Anda, Anda tidak perlu menyertakan--domain-owner
. Untuk informasi selengkapnya, lihat Domain lintas akun.Ganti
my_repo
dengan nama CodeArtifact repositori Anda.
aws codeartifact get-repository-endpoint --domain
my_domain
--domain-owner111122223333
--repositorymy_repo
--format npmBerikut ini URL adalah contoh titik akhir repositori.
https://
my_domain
-111122223333.d.codeartifact.us-west-2
.amazonaws.com/npm/my_repo
/penting
Registri URL harus diakhiri dengan garis miring (/). Jika tidak, Anda tidak dapat terhubung ke repositori.
Gunakan
npm config set
perintah untuk mengatur registri ke CodeArtifact repositori Anda. Ganti URL dengan titik akhir repositori URL dari langkah sebelumnya.npm config set registry=https://
my_domain
-111122223333
.d.codeartifact.region
.amazonaws.com/npm/my_repo
/catatan
Untuk menggunakan endpoint dualstack, gunakan endpoint.
codeartifact.
region
.on.awsGunakan
npm config set
perintah untuk menambahkan token otorisasi Anda ke konfigurasi npm Anda.npm config set //
my_domain
-111122223333
.d.codeartifact.region
.amazonaws.com/npm/my_repo
/:_authToken=$CODEARTIFACT_AUTH_TOKENUntuk npm 6 atau lebih rendah: Untuk membuat npm selalu meneruskan token autentikasi ke CodeArtifact, bahkan untuk
GET
permintaan, setel variabelalways-auth
konfigurasi dengan.npm config set
npm config set //
my_domain
-111122223333
.d.codeartifact.region
.amazonaws.com/npm/my_repo
/:always-auth=true
Contoh file konfigurasi npm () .npmrc
Berikut ini adalah .npmrc
file contoh setelah mengikuti instruksi sebelumnya untuk mengatur titik akhir CodeArtifact registri, menambahkan token otentikasi, dan mengkonfigurasi. always-auth
registry=https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my-cli-repo/ //my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/:_authToken=eyJ2ZX... //my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/:always-auth=true
Menjalankan perintah npm
Setelah Anda mengkonfigurasi klien npm, Anda dapat menjalankan perintah npm. Dengan asumsi bahwa sebuah paket ada dalam repositori Anda atau salah satu repositori hulu, Anda dapat menginstalnya dengan npm install
. Misalnya, gunakan hal berikut untuk menginstal paket lodash
.
npm install lodash
Gunakan perintah berikut untuk menerbitkan paket npm baru ke CodeArtifact repositori.
npm publish
Untuk informasi tentang cara membuat paket npm, lihat Membuat Modul Node.js
Memverifikasi otentikasi dan otorisasi npm
Memanggil npm ping
perintah adalah cara untuk memverifikasi hal-hal berikut:
-
Anda telah mengonfigurasi kredensialnya dengan benar sehingga Anda dapat mengautentikasi ke repositori. CodeArtifact
-
Konfigurasi otorisasi memberikan Anda izin
ReadFromRepository
.
Output dari panggilan npm ping
yang berhasil terlihat seperti berikut.
$ npm -d ping npm info it worked if it ends with ok npm info using npm@6.4.1 npm info using node@v9.5.0 npm info attempt registry request try #1 at 4:30:59 PM npm http request GET https://<domain>.d.codeartifact.us-west-2.amazonaws.com/npm/shared/-/ping?write=true npm http 200 https:///npm/shared/-/ping?write=true Ping success: {} npm timing npm Completed in 716ms npm info ok
-d
Opsi ini menyebabkan npm mencetak informasi debug tambahan, termasuk repositori. URL Informasi ini memudahkan untuk mengonfirmasi bahwa npm dikonfigurasi untuk menggunakan repositori yang Anda harapkan.
Mengubah kembali ke registri npm default
Mengkonfigurasi npm dengan CodeArtifact menetapkan registri npm ke repositori yang ditentukan. CodeArtifact Anda dapat menjalankan perintah berikut untuk mengatur registri npm kembali ke registri default ketika Anda selesai menghubungkan ke CodeArtifact.
npm config set registry https://registry.npmjs.com/
Memecahkan masalah pemasangan lambat dengan npm 8.x atau lebih tinggi
Ada masalah yang diketahui di npm versi 8.x dan lebih besar di mana jika permintaan dibuat ke repositori paket, dan repositori mengarahkan klien ke Amazon S3 alih-alih mengalirkan aset secara langsung, klien npm dapat hang selama beberapa menit per ketergantungan.
Karena CodeArtifact repositori dirancang untuk selalu mengarahkan permintaan ke Amazon S3, terkadang masalah ini terjadi, yang menyebabkan waktu pembuatan yang lama karena waktu pemasangan npm yang lama. Contoh perilaku ini akan menampilkan diri sebagai bilah kemajuan yang ditampilkan selama beberapa menit.
Untuk menghindari masalah ini, gunakan progress=false
tanda --no-progress
atau dengan perintah npm
cli, seperti yang ditunjukkan pada contoh berikut.
npm install lodash --no-progress