Konfigurasikan dan gunakan npm dengan CodeArtifact - CodeArtifact

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.

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 --domain my_domain --domain-owner 111122223333 --repository my_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
  1. 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-owner 111122223333 --query authorizationToken --output text`
  2. 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-owner 111122223333 --repository my_repo --format npm

    Berikut 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.

  3. 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.aws

  4. Gunakan 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_TOKEN

    Untuk npm 6 atau lebih rendah: Untuk membuat npm selalu meneruskan token autentikasi ke CodeArtifact, bahkan untuk GET permintaan, setel variabel always-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 di situs web dokumentasi npm. Untuk daftar perintah npm yang didukung oleh CodeArtifact, lihat npm Command Support.

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

-dOpsi 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