

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
<a name="npm-auth"></a>

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.

**Contents**
+ [Mengkonfigurasi npm dengan perintah login](#configure-npm-login-command)
+ [Mengonfigurasi npm tanpa menggunakan perintah login](#configuring-npm-without-using-the-login-command)
+ [Menjalankan perintah npm](#running-npm-commands)
+ [Memverifikasi otentikasi dan otorisasi npm](#verifying-npm-authentication-and-authorization)
+ [Mengubah kembali ke registri npm default](#revert-default-npm-registry)
+ [Memecahkan masalah pemasangan lambat dengan npm 8.x atau lebih tinggi](#troubleshooting-slow-npm-install)

## Mengkonfigurasi npm dengan perintah login
<a name="configure-npm-login-command"></a>

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](domain-overview.md#domain-overview-cross-account).

**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 \$1/.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`](tokens-authentication.md#auth-token-login).

## Mengonfigurasi npm tanpa menggunakan perintah login
<a name="configuring-npm-without-using-the-login-command"></a>

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, lihat[Teruskan token auth menggunakan variabel lingkungan](tokens-authentication.md#env-var).

   ```
   CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text`
   ```

1. Dapatkan endpoint CodeArtifact repositori Anda dengan menjalankan perintah berikut. Titik akhir repositori Anda digunakan untuk mengarahkan npm ke repositori Anda untuk menginstal atau menerbitkan paket.
   + Ganti *my\$1domain* 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](domain-overview.md#domain-overview-cross-account).
   + Ganti *my\$1repo* dengan nama CodeArtifact repositori Anda.

   ```
   aws codeartifact get-repository-endpoint --domain my_domain --domain-owner 111122223333 --repository my_repo --format npm
   ```

   URL berikut adalah contoh titik akhir repositori.

   ```
   https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/
   ```
**penting**  
URL registri harus diakhiri dengan garis miring (/). Jika tidak, Anda tidak dapat terhubung ke repositori.

1. Gunakan `npm config set` perintah untuk mengatur registri ke CodeArtifact repositori Anda. Ganti URL dengan URL endpoint repositori 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`

1. 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 auth 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
<a name="running-npm-commands"></a>

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](https://docs.npmjs.com/getting-started/creating-node-modules) di situs web dokumentasi npm. Untuk daftar perintah npm yang didukung oleh CodeArtifact, lihat [npm Command Support](npm-commands.md). 

## Memverifikasi otentikasi dan otorisasi npm
<a name="verifying-npm-authentication-and-authorization"></a>

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 URL repositori. Informasi ini memudahkan untuk mengonfirmasi bahwa npm dikonfigurasi untuk menggunakan repositori yang Anda harapkan.

## Mengubah kembali ke registri npm default
<a name="revert-default-npm-registry"></a>

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
<a name="troubleshooting-slow-npm-install"></a>

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 muncul 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
```