

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Konfigurieren und verwenden Sie npm mit CodeArtifact
<a name="npm-auth"></a>

Nachdem Sie ein Repository erstellt haben CodeArtifact, können Sie den npm-Client verwenden, um Pakete zu installieren und zu veröffentlichen. Die empfohlene Methode zur Konfiguration von npm mit Ihrem Repository-Endpunkt und Autorisierungstoken ist die Verwendung des `aws codeartifact login` Befehls. Sie können npm auch manuell konfigurieren.

**Contents**
+ [Konfiguration von npm mit dem Login-Befehl](#configure-npm-login-command)
+ [Konfiguration von npm ohne Verwendung des Login-Befehls](#configuring-npm-without-using-the-login-command)
+ [NPM-Befehle ausführen](#running-npm-commands)
+ [Überprüfung der NPM-Authentifizierung und -Autorisierung](#verifying-npm-authentication-and-authorization)
+ [Zurück zur Standard-NPM-Registrierung](#revert-default-npm-registry)
+ [Fehlerbehebung bei langsamen Installationen mit npm 8.x oder höher](#troubleshooting-slow-npm-install)

## Konfiguration von npm mit dem Login-Befehl
<a name="configure-npm-login-command"></a>

Verwenden Sie den `aws codeartifact login` Befehl, um Anmeldeinformationen für die Verwendung mit npm abzurufen.

**Anmerkung**  
Wenn Sie auf ein Repository in einer Domain zugreifen, die Sie besitzen, müssen Sie dies nicht angeben. `--domain-owner` Weitere Informationen finden Sie unter [Kontenübergreifende Domänen](domain-overview.md#domain-overview-cross-account).

**Wichtig**  
Wenn Sie npm 10.x oder neuer verwenden, müssen Sie AWS CLI Version 2.9.5 oder neuer verwenden, um den Befehl erfolgreich auszuführen. `aws codeartifact login`

```
aws codeartifact login --tool npm --domain my_domain --domain-owner 111122223333 --repository my_repo
```

Dieser Befehl nimmt die folgenden Änderungen an Ihrer \$1/.npmrc-Datei vor:
+ Fügt ein Autorisierungstoken hinzu, nachdem Sie es mithilfe Ihrer Anmeldeinformationen abgerufen haben. CodeArtifact AWS 
+ Setzt die NPM-Registrierung auf das in der Option angegebene Repository. `--repository`
+ **Für npm 6 und niedriger:** Fügt hinzu, `"always-auth=true"` dass das Autorisierungstoken für jeden npm-Befehl gesendet wird.

Die Standardautorisierungszeit nach dem Aufrufen `login` beträgt 12 Stunden und `login` muss aufgerufen werden, um das Token regelmäßig zu aktualisieren. Weitere Hinweise zu dem mit dem `login` Befehl erstellten Autorisierungstoken finden Sie unter[Mit dem Befehl erstellte Tokens `login`](tokens-authentication.md#auth-token-login).

## Konfiguration von npm ohne Verwendung des Login-Befehls
<a name="configuring-npm-without-using-the-login-command"></a>

Sie können npm mit Ihrem CodeArtifact Repository ohne den `aws codeartifact login` Befehl konfigurieren, indem Sie die npm-Konfiguration manuell aktualisieren.

**Um npm zu konfigurieren, ohne den Login-Befehl zu verwenden**

1. Rufen Sie in einer Befehlszeile ein CodeArtifact Autorisierungstoken ab und speichern Sie es in einer Umgebungsvariable. npm verwendet dieses Token, um sich bei Ihrem Repository zu authentifizieren. CodeArtifact 
**Anmerkung**  
Der folgende Befehl gilt für macOS- oder Linux-Maschinen. Informationen zur Konfiguration von Umgebungsvariablen auf einem Windows-Computer finden Sie unter[Übergeben Sie ein Authentifizierungstoken mithilfe einer Umgebungsvariablen](tokens-authentication.md#env-var).

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

1. Rufen Sie den Endpunkt Ihres CodeArtifact Repositorys ab, indem Sie den folgenden Befehl ausführen. Ihr Repository-Endpunkt wird verwendet, um npm auf Ihr Repository zu verweisen, um Pakete zu installieren oder zu veröffentlichen.
   + Ersetze es *my\$1domain* durch deinen CodeArtifact Domainnamen.
   + *111122223333*Ersetzen Sie es durch die AWS Konto-ID des Inhabers der Domain. Wenn Sie auf ein Repository in einer Domain zugreifen, die Sie besitzen, müssen Sie nichts angeben`--domain-owner`. Weitere Informationen finden Sie unter [Kontenübergreifende Domänen](domain-overview.md#domain-overview-cross-account).
   + Ersetze es *my\$1repo* durch deinen CodeArtifact Repository-Namen.

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

   Die folgende URL ist ein Beispiel für einen Repository-Endpunkt.

   ```
   https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/
   ```
**Wichtig**  
Die Registrierungs-URL muss mit einem Schrägstrich (/) enden. Andernfalls können Sie keine Verbindung zum Repository herstellen.

1. Verwenden Sie den `npm config set` Befehl, um die Registrierung auf Ihr CodeArtifact Repository festzulegen. Ersetzen Sie die URL durch die Repository-Endpunkt-URL aus dem vorherigen Schritt.

   ```
   npm config set registry=https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/
   ```
**Anmerkung**  
Um einen Dual-Stack-Endpunkt zu verwenden, verwenden Sie den `codeartifact.region.on.aws` Endpunkt.

1. Verwenden Sie den `npm config set` Befehl, um Ihr Autorisierungstoken zu Ihrer NPM-Konfiguration hinzuzufügen.

   ```
   npm config set //my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/:_authToken=$CODEARTIFACT_AUTH_TOKEN
   ```

   **Für npm 6 oder niedriger:** Damit npm das Authentifizierungstoken immer weitergibt CodeArtifact, auch bei `GET` Anfragen, setzen Sie die `always-auth` Konfigurationsvariable mit. `npm config set` 

   ```
   npm config set //my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/:always-auth=true
   ```

**Beispiel für eine npm-Konfigurationsdatei () `.npmrc`**

 Im Folgenden finden Sie eine `.npmrc` Beispieldatei, nachdem Sie die vorherigen Anweisungen befolgt haben, um den CodeArtifact Registrierungsendpunkt festzulegen, ein Authentifizierungstoken hinzuzufügen und zu konfigurieren`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
```

## NPM-Befehle ausführen
<a name="running-npm-commands"></a>

Nachdem Sie den npm-Client konfiguriert haben, können Sie npm-Befehle ausführen. Unter der Annahme, dass ein Paket in Ihrem Repository oder einem seiner Upstream-Repositorys vorhanden ist, können Sie es mit installieren. `npm install` Verwenden Sie zum Beispiel Folgendes, um das `lodash` Paket zu installieren.

```
npm install lodash
```

Verwenden Sie den folgenden Befehl, um ein neues npm-Paket in einem CodeArtifact Repository zu veröffentlichen.

```
npm publish
```

Informationen zum Erstellen von npm-Paketen finden Sie unter [Creating Node.js Modules](https://docs.npmjs.com/getting-started/creating-node-modules) auf der NPM-Dokumentationswebsite. Eine Liste der npm-Befehle, die von unterstützt werden CodeArtifact, finden Sie unter [npm-Befehlsunterstützung](npm-commands.md). 

## Überprüfung der NPM-Authentifizierung und -Autorisierung
<a name="verifying-npm-authentication-and-authorization"></a>

Durch das Aufrufen des `npm ping` Befehls können Sie Folgendes überprüfen:
+ Sie haben Ihre Anmeldeinformationen korrekt konfiguriert, sodass Sie sich bei einem Repository CodeArtifact authentifizieren können.
+ Die Autorisierungskonfiguration gewährt Ihnen die `ReadFromRepository` Erlaubnis.

Die Ausgabe eines erfolgreichen Aufrufs von `npm ping` sieht wie folgt aus.

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

Die `-d` Option veranlasst npm, zusätzliche Debug-Informationen auszudrucken, einschließlich der Repository-URL. Anhand dieser Informationen können Sie leicht bestätigen, dass npm so konfiguriert ist, dass es das von Ihnen erwartete Repository verwendet.

## Zurück zur Standard-NPM-Registrierung
<a name="revert-default-npm-registry"></a>

Durch die Konfiguration von npm mit CodeArtifact wird die npm-Registrierung auf das angegebene Repository festgelegt. CodeArtifact Sie können den folgenden Befehl ausführen, um die npm-Registrierung auf ihre Standardregistrierung zurückzusetzen, wenn Sie mit der Verbindung fertig sind. CodeArtifact

```
npm config set registry https://registry.npmjs.com/
```

## Fehlerbehebung bei langsamen Installationen mit npm 8.x oder höher
<a name="troubleshooting-slow-npm-install"></a>

In den NPM-Versionen 8.x und höher gibt es ein bekanntes Problem: Wenn eine Anfrage an ein Paket-Repository gestellt wird und das Repository den Client zu Amazon S3 umleitet, anstatt die Assets direkt zu streamen, kann der npm-Client pro Abhängigkeit mehrere Minuten lang hängen bleiben. 

Da CodeArtifact Repositorys so konzipiert sind, dass sie die Anfrage immer an Amazon S3 weiterleiten, tritt dieses Problem manchmal auf, das aufgrund der langen NPM-Installationszeiten zu langen Build-Zeiten führt. Fälle dieses Verhaltens werden als Fortschrittsbalken angezeigt, der mehrere Minuten lang angezeigt wird.

Um dieses Problem zu vermeiden, verwenden Sie entweder die `progress=false` Flags `--no-progress` oder mit `npm` CLI-Befehlen, wie im folgenden Beispiel gezeigt.

```
npm install lodash --no-progress
```