

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Configura e usa npm con CodeArtifact
<a name="npm-auth"></a>

Dopo aver creato un repository in CodeArtifact, puoi usare il client npm per installare e pubblicare pacchetti. Il metodo consigliato per configurare npm con l'endpoint del repository e il token di autorizzazione consiste nell'utilizzare il comando. `aws codeartifact login` Puoi anche configurare npm manualmente.

**Contents**
+ [Configurazione di npm con il comando login](#configure-npm-login-command)
+ [Configurazione di npm senza utilizzare il comando login](#configuring-npm-without-using-the-login-command)
+ [Esecuzione dei comandi npm](#running-npm-commands)
+ [Verifica dell'autenticazione e dell'autorizzazione di npm](#verifying-npm-authentication-and-authorization)
+ [Tornare al registro npm predefinito](#revert-default-npm-registry)
+ [Risoluzione dei problemi di installazioni lente con npm 8.x o versioni successive](#troubleshooting-slow-npm-install)

## Configurazione di npm con il comando login
<a name="configure-npm-login-command"></a>

Usa il `aws codeartifact login` comando per recuperare le credenziali da utilizzare con npm.

**Nota**  
Se accedi a un repository in un dominio di tua proprietà, non è necessario includerlo. `--domain-owner` Per ulteriori informazioni, consulta [Domini con più account](domain-overview.md#domain-overview-cross-account).

**Importante**  
Se si utilizza npm 10.x o una versione successiva, è necessario utilizzare la AWS CLI versione 2.9.5 o successiva per eseguire correttamente il comando. `aws codeartifact login`

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

Questo comando apporta le seguenti modifiche al file \$1/.npmrc:
+ Aggiunge un token di autorizzazione dopo averlo recuperato utilizzando le tue credenziali. CodeArtifact AWS 
+ Imposta il registro npm sul repository specificato dall'opzione. `--repository`
+ **Per npm 6 e versioni precedenti:** aggiunge `"always-auth=true"` in modo che il token di autorizzazione venga inviato per ogni comando npm.

Il periodo di autorizzazione predefinito dopo la chiamata `login` è di 12 ore e `login` deve essere chiamato per aggiornare periodicamente il token. Per ulteriori informazioni sul token di autorizzazione creato con il `login` comando, vedere[Token creati con il comando `login`](tokens-authentication.md#auth-token-login).

## Configurazione di npm senza utilizzare il comando login
<a name="configuring-npm-without-using-the-login-command"></a>

Puoi configurare npm con il tuo CodeArtifact repository senza il `aws codeartifact login` comando aggiornando manualmente la configurazione di npm.

**Per configurare npm senza usare il comando login**

1. In una riga di comando, recupera un token di CodeArtifact autorizzazione e memorizzalo in una variabile di ambiente. npm utilizzerà questo token per autenticarsi con il tuo repository. CodeArtifact 
**Nota**  
Il comando seguente è per macchine macOS o Linux. Per informazioni sulla configurazione delle variabili di ambiente su un computer Windows, vedere. [Passa un token di autenticazione utilizzando una variabile di ambiente](tokens-authentication.md#env-var)

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

1. Ottieni l'endpoint del tuo CodeArtifact repository eseguendo il comando seguente. L'endpoint del tuo repository viene utilizzato per indirizzare npm al tuo repository per installare o pubblicare pacchetti.
   + Sostituiscilo *my\$1domain* con il tuo nome di dominio. CodeArtifact 
   + Sostituiscilo *111122223333* con l'ID dell' AWS account del proprietario del dominio. Se accedi a un repository in un dominio di tua proprietà, non è necessario `--domain-owner` includerlo. Per ulteriori informazioni, consulta [Domini con più account](domain-overview.md#domain-overview-cross-account).
   + *my\$1repo*Sostituiscilo con il nome del tuo CodeArtifact repository.

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

   L'URL seguente è un esempio di endpoint del repository.

   ```
   https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/npm/my_repo/
   ```
**Importante**  
L'URL del registro deve terminare con una barra (/). In caso contrario, non è possibile connettersi al repository.

1. Usa il `npm config set` comando per impostare il registro nel tuo CodeArtifact repository. Sostituisci l'URL con l'URL dell'endpoint del repository del passaggio precedente.

   ```
   npm config set registry=https://my_domain-111122223333.d.codeartifact.region.amazonaws.com/npm/my_repo/
   ```
**Nota**  
Per utilizzare un endpoint dualstack, usa l'endpoint. `codeartifact.region.on.aws`

1. Usa il `npm config set` comando per aggiungere il tuo token di autorizzazione alla tua configurazione npm.

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

   **Per npm 6 o versioni precedenti:** per fare in modo che npm passi sempre il token di autenticazione a CodeArtifact, anche per `GET` le richieste, imposta la `always-auth` variabile di configurazione con. `npm config set` 

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

**Esempio di file di configurazione npm () `.npmrc`**

 Di seguito è riportato un `.npmrc` file di esempio dopo aver seguito le istruzioni precedenti per impostare l'endpoint del CodeArtifact registro, aggiungere un token di autenticazione e configurare. `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
```

## Esecuzione dei comandi npm
<a name="running-npm-commands"></a>

Dopo aver configurato il client npm, puoi eseguire i comandi npm. Supponendo che un pacchetto sia presente nel tuo repository o in uno dei suoi repository upstream, puoi installarlo con. `npm install` Ad esempio, utilizzate quanto segue per installare il pacchetto. `lodash`

```
npm install lodash
```

Usa il comando seguente per pubblicare un nuovo pacchetto npm in un CodeArtifact repository.

```
npm publish
```

Per informazioni su come creare pacchetti npm, vedere [Creazione di moduli Node.js](https://docs.npmjs.com/getting-started/creating-node-modules) sul sito Web della documentazione di npm. Per un elenco dei comandi npm supportati da CodeArtifact, vedere [npm Command Support](npm-commands.md). 

## Verifica dell'autenticazione e dell'autorizzazione di npm
<a name="verifying-npm-authentication-and-authorization"></a>

L'invocazione del `npm ping` comando è un modo per verificare quanto segue:
+ Hai configurato correttamente le tue credenziali in modo da poterti autenticare in un repository. CodeArtifact 
+ La configurazione dell'autorizzazione ti concede l'autorizzazione. `ReadFromRepository`

L'output di una chiamata riuscita di è `npm ping` simile al seguente.

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

L'`-d`opzione fa sì che npm stampi informazioni di debug aggiuntive, incluso l'URL del repository. Queste informazioni semplificano la conferma che npm sia configurato per utilizzare il repository previsto.

## Tornare al registro npm predefinito
<a name="revert-default-npm-registry"></a>

La configurazione di npm con CodeArtifact imposta il registro npm sul repository specificato. CodeArtifact Puoi eseguire il seguente comando per riportare il registro npm al registro predefinito al termine della connessione a. CodeArtifact

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

## Risoluzione dei problemi di installazioni lente con npm 8.x o versioni successive
<a name="troubleshooting-slow-npm-install"></a>

Esiste un problema noto nelle versioni 8.x e successive di npm in cui se viene effettuata una richiesta a un repository di pacchetti e il repository reindirizza il client ad Amazon S3 anziché trasmettere direttamente le risorse, il client npm può bloccarsi per diversi minuti per dipendenza. 

Poiché i CodeArtifact repository sono progettati per reindirizzare sempre la richiesta ad Amazon S3, a volte si verifica questo problema, che causa lunghi tempi di compilazione a causa dei lunghi tempi di installazione di npm. Le istanze di questo comportamento si presenteranno come una barra di avanzamento che viene visualizzata per diversi minuti.

Per evitare questo problema, utilizzate i `progress=false` flag `--no-progress` o con i comandi `npm` cli, come illustrato nell'esempio seguente.

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