

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menggunakan CodeArtifact dengan npm
<a name="using-npm"></a>

Topik-topik ini menjelaskan cara menggunakan npm, manajer paket Node.js, dengan CodeArtifact.

**catatan**  
CodeArtifact mendukung `node v4.9.1` dan kemudian `npm v5.0.0` dan kemudian.

**Topics**
+ [Konfigurasikan dan gunakan npm](npm-auth.md)
+ [Konfigurasikan dan gunakan Yarn](npm-yarn.md)
+ [dukungan perintah npm](npm-commands.md)
+ [penanganan tanda npm](npm-tags.md)
+ [Dukungan untuk manajer paket yang kompatibel dengan npm](npm-other-clients.md)

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

# Konfigurasikan dan gunakan Yarn dengan CodeArtifact
<a name="npm-yarn"></a>

Setelah Anda membuat repositori, Anda dapat menggunakan klien Yarn untuk mengelola paket npm.

**catatan**  
`Yarn 1.X`membaca dan menggunakan informasi dari file konfigurasi npm Anda (.npmrc), sementara tidak. `Yarn 2.X` Konfigurasi untuk `Yarn 2.X` harus didefinisikan dalam file.yarnrc.yml.

**Contents**
+ [Konfigurasikan Yarn 1.X dengan perintah `aws codeartifact login`](#npm-yarn-configure-login)
+ [Konfigurasikan Yarn 2.X dengan perintah `yarn config set`](#npm-yarn-configure-yarn-command)

## Konfigurasikan Yarn 1.X dengan perintah `aws codeartifact login`
<a name="npm-yarn-configure-login"></a>

Untuk`Yarn 1.X`, Anda dapat mengkonfigurasi Yarn dengan CodeArtifact menggunakan `aws codeartifact login` perintah. `login`Perintah akan mengkonfigurasi file \$1/.npmrc Anda dengan informasi titik akhir repositori dan kredenal Anda CodeArtifact . Dengan`Yarn 1.X`, `yarn` perintah menggunakan informasi konfigurasi dari file \$1/.npmrc.

**Untuk mengkonfigurasi `Yarn 1.X` dengan perintah login**

1. Jika Anda belum melakukannya, konfigurasikan AWS kredensional Anda untuk digunakan dengan AWS CLI, seperti yang dijelaskan dalam. [Memulai dengan CodeArtifact](getting-started.md)

1. Untuk menjalankan `aws codeartifact login` perintah dengan sukses, npm harus diinstal. Lihat [Mengunduh dan menginstal Node.js dan npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm/) di *dokumentasi npm* untuk petunjuk penginstalan.

1. Gunakan `aws codeartifact login` perintah untuk mengambil CodeArtifact kredensi dan mengkonfigurasi file \$1/.npmrc Anda.
   + 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 login --tool npm --domain my_domain --domain-owner 111122223333 --repository my_repo
   ```

   `login`Perintah membuat perubahan berikut pada file \$1/.npmrc Anda:
   + Menambahkan token otorisasi setelah mengambilnya dari CodeArtifact menggunakan kredensional 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 menelepon `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).

1. **Untuk npm 7.X dan 8.X**, Anda harus menambahkan `always-auth=true` ke file \$1/.npmrc Anda untuk menggunakan Yarn.

   1. Buka file \$1/.npmrc Anda di editor teks dan tambahkan pada baris baru. `always-auth=true`

Anda dapat menggunakan `yarn config list` perintah untuk memeriksa apakah Yarn menggunakan konfigurasi yang benar. Setelah menjalankan perintah, periksa nilai di `info npm config` bagian. Konten akan terlihat mirip dengan cuplikan berikut.

```
info npm config
{
  registry: 'https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/',
  '//my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/:_authToken': 'eyJ2ZXI...',
  'always-auth': true
}
```

## Konfigurasikan Yarn 2.X dengan perintah `yarn config set`
<a name="npm-yarn-configure-yarn-command"></a>

Prosedur berikut merinci cara mengkonfigurasi `Yarn 2.X` dengan memperbarui `.yarnrc.yml` konfigurasi Anda dari baris perintah dengan `yarn config set` perintah.

**Untuk memperbarui `yarnrc.yml` konfigurasi dari baris perintah**

1. Jika Anda belum melakukannya, konfigurasikan AWS kredensional Anda untuk digunakan dengan AWS CLI, seperti yang dijelaskan dalam. [Memulai dengan CodeArtifact](getting-started.md)

1. Gunakan `aws codeartifact get-repository-endpoint` perintah untuk mendapatkan titik akhir CodeArtifact repositori Anda.
   + 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
   ```

1. Perbarui `npmRegistryServer` nilai dalam file.yarnrc.yl Anda dengan titik akhir repositori Anda.

   ```
   yarn config set npmRegistryServer "https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/"
   ```

1. Ambil token CodeArtifact otorisasi dan simpan dalam variabel lingkungan.
**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).
   + 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.

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

1. Gunakan `yarn config set` perintah untuk menambahkan token CodeArtifact otentikasi Anda ke file.yarnrc.ymlmu. Ganti URL dalam perintah berikut dengan URL endpoint repositori Anda dari Langkah 2.

   ```
   yarn config set 'npmRegistries["https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/"].npmAuthToken' "${CODEARTIFACT_AUTH_TOKEN}"
   ```

1. Gunakan `yarn config set` perintah untuk mengatur nilai `npmAlwaysAuth` ke`true`. Ganti URL dalam perintah berikut dengan URL endpoint repositori Anda dari Langkah 2.

   ```
   yarn config set 'npmRegistries["https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/"].npmAlwaysAuth' "true"
   ```

Setelah mengonfigurasi, file konfigurasi.yarnrc.ymlmu harus memiliki konten yang mirip dengan cuplikan berikut.

```
npmRegistries:
  "https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/":
    npmAlwaysAuth: true
    npmAuthToken: eyJ2ZXI...

npmRegistryServer: "https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/"
```

Anda juga dapat menggunakan `yarn config` perintah untuk memeriksa nilai `npmRegistries` dan`npmRegistryServer`.

# dukungan perintah npm
<a name="npm-commands"></a>

Bagian berikut merangkum perintah npm yang didukung, oleh CodeArtifact repositori, selain perintah tertentu yang tidak didukung.

**Contents**
+ [Perintah yang didukung yang berinteraksi dengan repositori](#supported-commands-that-interact-with-a-repository)
+ [Perintah sisi klien yang didukung](#supported-client-side-commands)
+ [Perintah tidak didukung](#unsupported-commands)

## Perintah yang didukung yang berinteraksi dengan repositori
<a name="supported-commands-that-interact-with-a-repository"></a>

Bagian ini mencantumkan perintah npm di mana klien npm membuat satu atau beberapa permintaan ke registri yang telah dikonfigurasi dengannya (misalnya, dengan`npm config set registry`). Perintah-perintah ini telah diverifikasi untuk berfungsi dengan benar ketika dipanggil terhadap CodeArtifact repositori.


****  

| Perintah | Deskripsi | 
| --- | --- | 
|   [bug](https://docs.npmjs.com/cli/bugs)   |  Mencoba menebak lokasi URL pelacak bug paket, dan kemudian mencoba membukanya.  | 
|   [ci](https://docs.npmjs.com/cli/ci)   |  Menginstal proyek dari awal.  | 
|   [mencela](https://docs.npmjs.com/cli/deprecate)   |  Menghentikan penggunaan versi paket.  | 
|   [dist-tag](https://docs.npmjs.com/cli/dist-tag)   |  Memodifikasi tanda distribusi paket.  | 
|   [dokumen](https://docs.npmjs.com/cli/docs)   |  Mencoba menebak lokasi URL dokumentasi paket, dan kemudian mencoba untuk membukanya menggunakan parameter config `--browser`.  | 
|   [dokter](https://docs.npmjs.com/cli/doctor)   |  Menjalankan serangkaian pemeriksaan untuk memastikan bahwa instalasi npm Anda memiliki apa yang diperlukan untuk mengelola JavaScript paket Anda.  | 
|   [menginstal](https://docs.npmjs.com/cli/install)   |  Menginstal paket.  | 
|   [install-ci-test](https://docs.npmjs.com/cli/install-ci-test)   |  Menginstal proyek dari awal dan menjalankan pengujian. Alias:`npm cit`. Perintah ini menjalankan `npm ci` yang langsung diikuti oleh `npm test`.  | 
|   [uji instalasi](https://docs.npmjs.com/cli/install-test)   |  Menginstal paket dan menjalankan tes. Menjalankan `npm install` yang langsung diikuti oleh `npm test`.  | 
|   [ketinggalan zaman](https://docs.npmjs.com/cli/outdated)   |  Memeriksa registri yang dikonfigurasi untuk melihat apakah paket yang diinstal saat ini sudah usang.  | 
|   [ping](https://docs.npmjs.com/cli/ping)   |  Ping registri npm yang dikonfigurasi atau diberikan dan memverifikasi autentikasi.  | 
|   [mempublikasikan](https://docs.npmjs.com/cli/publish)   |  Memublikasikan versi paket ke registri.  | 
|   [perbarui](https://docs.npmjs.com/cli/update)   |  Menebak lokasi URL repositori paket, dan kemudian mencoba membukanya menggunakan parameter config `--browser`.  | 
|   [melihat](https://docs.npmjs.com/cli/view)   |  Menampilkan metadata paket. Dapat digunakan untuk mencetak properti metadata.  | 

## Perintah sisi klien yang didukung
<a name="supported-client-side-commands"></a>

Perintah ini tidak memerlukan interaksi langsung dengan repositori, jadi CodeArtifact tidak perlu melakukan apa pun untuk mendukungnya.


****  

| Perintah | Deskripsi | 
| --- | --- | 
|   [membangun](https://docs.npmjs.com/cli/v6/commands/npm-build)   |  Membangun paket.  | 
|   [tembolok](https://docs.npmjs.com/cli/cache)   |  Memanipulasi cache paket.  | 
|   [penyelesaian](https://docs.npmjs.com/cli/completion)   |  Memungkinkan penyelesaian tab di semua perintah npm.  | 
|   [konfigurasi](https://docs.npmjs.com/cli/config)   |  Memperbarui isi pengguna dan file `npmrc` global.  | 
|   [dedupe](https://docs.npmjs.com/cli/dedupe)   |  Mencari pohon paket lokal dan mencoba menyederhanakan struktur dengan memindahkan dependensi semakin ke atas pohon, yang dapat lebih efektif dibagi oleh beberapa paket dependen.  | 
|   [sunting](https://docs.npmjs.com/cli/edit)   |  Mengedit paket yang diinstal. Memilih dependensi dalam direktori kerja saat ini dan membuka folder paket di editor default.  | 
|   [jelajahi](https://docs.npmjs.com/cli/explore)   |  Menelusuri paket yang diinstal. Memunculkan subshell di direktori paket terinstal yang ditentukan. Jika ditentukan, perintah dijalankan di subshell, yang kemudian segera berakhir.  | 
|   [membantu](https://docs.npmjs.com/cli/help)   |  Mendapat bantuan mengenai npm.  | 
|   [bantuan-pencarian](https://docs.npmjs.com/cli/help-search)   |  Menelusuri dokumentasi bantuan npm.  | 
|   [init](https://docs.npmjs.com/cli/init)   |  Membuat file `package.json`.  | 
|   [tautan](https://docs.npmjs.com/cli/link)   |  Symlink folder paket.  | 
|   [ls](https://docs.npmjs.com/cli/ls)   |  Daftar paket yang diinstal.  | 
|   [paket](https://docs.npmjs.com/cli/pack)   |  Membuat tarball dari sebuah paket.  | 
|   [prefix](https://docs.npmjs.com/cli/prefix)   |  Menampilkan prefiks. Ini adalah direktori induk terdekat untuk memuat file `package.json` kecuali `-g` juga ditentukan.  | 
|   [memangkas](https://docs.npmjs.com/cli/prune)   |  Menghapus paket yang tidak tercantum pada daftar dependensi paket induk.  | 
|   [membangun kembali](https://docs.npmjs.com/cli/rebuild)   |  Menjalankan perintah `npm build` pada folder yang cocok.  | 
|   [mulai ulang](https://docs.npmjs.com/cli/restart)   |  Menjalankan skrip berhenti, mulai ulang, dan mulai untuk paket dan skrip pra- dan post-skrip terkait.  | 
|   [akar](https://docs.npmjs.com/cli/root)   |  Mencetak folder `node_modules` untuk standar keluar.  | 
|   [run-skrip](https://docs.npmjs.com/cli/run-script)   |  Menjalankan skrip paket arbitrer.  | 
|   [shrinkwrap](https://docs.npmjs.com/cli/shrinkwrap)   |  Mengunci versi dependensi untuk publikasi.  | 
|   [copot pemasangan](https://docs.npmjs.com/cli/uninstall)   |  Meng-uninstall paket.  | 

## Perintah tidak didukung
<a name="unsupported-commands"></a>

Perintah npm ini tidak didukung oleh CodeArtifact repositori.


****  

| Perintah | Deskripsi | Catatan | 
| --- | --- | --- | 
|   [akses](https://docs.npmjs.com/cli/access)   |  Menetapkan tingkat akses pada paket yang dipublikasikan.  |  CodeArtifact menggunakan model izin yang berbeda dari repositori npmjs publik.  | 
|   [adduser](https://docs.npmjs.com/cli/adduser)   |  Menambahkan akun pengguna registri  |  CodeArtifact menggunakan model pengguna yang berbeda dari repositori npmjs publik.  | 
|   [audit](https://docs.npmjs.com/cli/audit)   |  Menjalankan audit keamanan.  |  CodeArtifact saat ini tidak menjual data kerentanan keamanan.  | 
|   [kait](https://docs.npmjs.com/cli/hook)   |  Mengelola kait npm, termasuk menambahkan, menghapus, mendaftar, dan memperbarui.  |  CodeArtifact saat ini tidak mendukung segala jenis mekanisme pemberitahuan perubahan.  | 
|   [Login](https://docs.npmjs.com/cli-commands/adduser.html)   |  Mengautentikasi pengguna. Ini adalah nama lain untuk `npm adduser`.   |  CodeArtifact menggunakan model otentikasi yang berbeda dari repositori npmjs publik. Untuk informasi, lihat [Autentikasi dengan npm](npm-auth.md).  | 
|   [logout](https://docs.npmjs.com/cli/logout)   |  Keluar dari registri.  |  CodeArtifact menggunakan model otentikasi yang berbeda dari repositori npmjs publik. Tidak ada cara untuk keluar dari CodeArtifact repositori, tetapi token otentikasi kedaluwarsa setelah waktu kedaluwarsa yang dapat dikonfigurasi. Durasi token default adalah 12 jam.   | 
|   [pemilik](https://docs.npmjs.com/cli/owner)   |  Mengelola pemilik paket.  |  CodeArtifact menggunakan model izin yang berbeda dari repositori npmjs publik.  | 
|   [profil](https://docs.npmjs.com/cli/profile)   |  Mengubah pengaturan pada profil registri Anda.  |  CodeArtifact menggunakan model pengguna yang berbeda dari repositori npmjs publik.  | 
|   [pencarian](https://docs.npmjs.com/cli/search)   |  Mencari registri untuk paket yang cocok dengan istilah pencarian.  |  CodeArtifact mendukung fungsionalitas pencarian terbatas dengan perintah [daftar-paket](list-packages.md).  | 
|   [bintang](https://docs.npmjs.com/cli/star)   |  Menandai paket favorit Anda.  |  CodeArtifact saat ini tidak mendukung mekanisme favorit apa pun.  | 
|   [bintang](https://docs.npmjs.com/cli/stars)   |  Melihat paket yang ditandai sebagai favorit.  |  CodeArtifact saat ini tidak mendukung mekanisme favorit apa pun.  | 
|   [tim](https://docs.npmjs.com/cli/team)   |  Mengelola tim organisasi dan keanggotaan tim.  |  CodeArtifact menggunakan model keanggotaan pengguna dan grup yang berbeda dari repositori npmjs publik. Untuk informasi, lihat [Identitas (Pengguna, Grup, dan Peran)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) di *Panduan Pengguna IAM*.  | 
|   [t](https://docs.npmjs.com/cli/token)oken   |  Mengelola token autentikasi Anda.  |  CodeArtifact menggunakan model yang berbeda untuk mendapatkan token otentikasi. Untuk informasi, lihat [Autentikasi dengan npm](npm-auth.md).  | 
|   [batalkan publikasi](https://docs.npmjs.com/cli/unpublish)   |  Menghapus paket dari registri.  |  CodeArtifact tidak mendukung penghapusan versi paket dari repositori menggunakan klien npm. Anda dapat menggunakan perintah [delete-package-version](delete-package.md).  | 
|   [whoami](https://docs.npmjs.com/cli/whoami)   |  Menampilkan nama pengguna npm.  |  CodeArtifact menggunakan model pengguna yang berbeda dari repositori npmjs publik.  | 

# penanganan tanda npm
<a name="npm-tags"></a>

 registri npm mendukung *tanda*, yang merupakan alias string untuk versi paket. Anda dapat menggunakan tanda untuk memberikan alias, bukan nomor versi. Misalnya, Anda mungkin memiliki proyek dengan beberapa aliran pengembangan dan menggunakan tanda yang berbeda (misalnya, `stable`, `beta`, `dev`, `canary`) untuk setiap aliran. Untuk informasi selengkapnya, lihat [dist-tag](https://docs.npmjs.com/cli/dist-tag) di situs web npm. 

 Secara default, npm menggunakan tanda `latest` untuk mengidentifikasi versi paket saat ini. `npm install pkg` (tanpa penentu `@version` atau `@tag`) menginstal tanda terbaru. Biasanya, proyek menggunakan tanda terbaru hanya untuk versi rilis stabil. Tanda lain digunakan untuk versi yang tidak stabil atau pra-rilis. 

## Edit tanda dengan klien npm
<a name="editing-tags-with-the-npm-client"></a>

 Tiga `npm dist-tag` perintah (`add`,`rm`, dan`ls`) berfungsi secara identik di CodeArtifact repositori seperti yang mereka lakukan di registri npm [default](https://registry.npmjs.com/).

## tag npm dan API CopyPackageVersions
<a name="tags-and-cpv"></a>

Ketika Anda menggunakan API `CopyPackageVersions` untuk menyalin versi paket npm, semua tanda alias versi tersebut disalin ke repositori tujuan. Ketika versi yang sedang disalin memiliki tanda yang juga ada di tujuan, operasi penyalinan menetapkan nilai tanda di repositori tujuan untuk mencocokkan nilai di repositori sumber.

Sebagai contoh, anggap repositori S dan repositori D berisi satu versi paket `web-helper` dengan set tanda terbaru seperti yang ditunjukkan dalam tabel ini.


****  

| Repositori | Nama paket | Tanda paket | 
| --- | --- | --- | 
|  D  |  `web-helper`  |   *terbaru* (alias untuk versi 1.0.1)  | 
|  D  |  `web-helper`  |   *terbaru* (alias untuk versi 1.0.0)  | 

 `CopyPackageVersions` dipanggil untuk menyalin `web-helper` 1.0.1 dari S ke D. Setelah operasi selesai, tanda `latest` pada `web-helper` dalam repositori alias D adalah 1.0.1, bukan 1.0.0.

Jika Anda perlu mengubah tanda setelah menyalin, gunakan perintah `npm dist-tag` untuk mengubah tanda secara langsung di repositori tujuan. Untuk informasi selengkapnya tentang API `CopyPackageVersions`, lihat [Copying Packages Between Repositories](copy-package.md).

## tanda npm dan repositori hulu
<a name="tags-and-upstreams"></a>

Saat npm meminta tag untuk paket dan versi paket itu juga ada di repositori upstream, CodeArtifact gabungkan tag sebelum mengembalikannya ke klien. Misalnya, repositori bernama R memiliki repositori hulu bernama U. Tabel berikut menunjukkan tanda untuk paket bernama `web-helper` yang ada di kedua repositori.


****  

| Repositori | Nama paket | Tanda paket | 
| --- | --- | --- | 
|  R  |  `web-helper`  |   *terbaru* (alias untuk versi 1.0.0)  | 
|  U  |  `web-helper`  |   *alfa* (alias untuk versi 1.0.1)  | 

Dalam kasus ini, ketika mengambil tanda untuk paket `web-helper` dari repositori R, klien npm menerima tanda *terbaru* dan*alfa*. Versi yang ditunjukkan oleh tanda tidak akan berubah.

*Ketika tag yang sama hadir pada paket yang sama di repositori hulu dan hilir, CodeArtifact gunakan tag yang ada di repositori upstream.* Misalnya, anggap tanda pada *webhelper* telah dimodifikasi agar terlihat seperti berikut ini.


****  

| Repositori | Nama paket | Tanda paket | 
| --- | --- | --- | 
|  R  |  `web-helper`  |   *terbaru* (alias untuk versi 1.0.0)  | 
|  U  |  `web-helper`  |   *terbaru* (alias untuk versi 1.0.1)  | 

Dalam hal ini, ketika klien npm mengambil tanda untuk paket *web-helper* dari repositori R, tanda *terbaru* akan membuat alias versi *1.0.1* karena itulah yang ada di repositori hulu. Hal ini memudahkan penggunaan versi paket baru di repositori hulu yang belum ada di repositori hilir dengan menjalankan `npm update`.

Menggunakan tanda di repositori hulu dapat menjadi masalah ketika memublikasikan versi baru dari sebuah paket di repositori hilir. Sebagai contoh, anggap bahwa tanda terbaru pada paket *web-helper* sama di R dan U.


****  

| Repositori | Nama paket | Tanda paket | 
| --- | --- | --- | 
|  R  |  `web-helper`  |   *terbaru* (alias untuk versi 1.0.1)  | 
|  U  |  `web-helper`  |   *terbaru* (alias untuk versi 1.0.1)  | 

Ketika versi 1.0.2 diterbitkan ke R, npm memperbarui tag *terbaru* ke 1.0.2.


****  

| Repositori | Nama paket | Tanda paket | 
| --- | --- | --- | 
|  R  |  `web-helper`  |   *terbaru* (alias untuk versi 1.0.2)  | 
|  U  |  `web-helper`  |   *terbaru* (alias untuk versi 1.0.1)  | 

Namun, klien npm tidak pernah melihat nilai tag ini karena nilai *terbaru* di U adalah 1.0.1. Menjalankan `npm install` terhadap repositori R segera setelah publikasi 1.0.2 akan menginstal 1.0.1, bukan versi yang baru saja dipublikasikan. Untuk menginstal versi yang paling baru dipublikasikan, Anda harus menentukan versi paket yang tepat, sebagai berikut.

```
npm install web-helper@1.0.2
```

# Dukungan untuk manajer paket yang kompatibel dengan npm
<a name="npm-other-clients"></a>

Manajer paket lain ini kompatibel dengan CodeArtifact dan bekerja dengan format paket npm dan protokol kawat npm: 
+  [manajer paket pnpm](https://pnpm.js.org). Versi terbaru yang dikonfirmasi untuk bekerja dengan CodeArtifact adalah 3.3.4, yang dirilis pada 18 Mei 2019. 
+  [Manajer paket Yarn](https://yarnpkg.com/). Versi terbaru yang dikonfirmasi untuk digunakan CodeArtifact adalah 1.21.1, yang dirilis pada 11 Desember 2019. 

**catatan**  
Kami merekomendasikan menggunakan Yarn 2.x dengan CodeArtifact. Yarn 1.x tidak memiliki percobaan ulang HTTP, yang berarti lebih rentan terhadap kesalahan layanan intermiten yang menghasilkan kode status atau kesalahan 500 tingkat. Tidak ada cara untuk mengonfigurasi strategi coba lagi yang berbeda untuk Yarn 1.x, tetapi ini telah ditambahkan di Yarn 2.x. Anda dapat menggunakan Yarn 1.x, tetapi Anda mungkin perlu menambahkan percobaan ulang tingkat yang lebih tinggi dalam skrip build. Misalnya, menjalankan perintah yarn Anda dalam satu lingkaran sehingga akan mencoba lagi jika mengunduh paket gagal.