Configura e usa npm con CodeArtifact - CodeArtifact

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

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.

Configurazione di npm con il comando login

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.

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 ~/.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, vedereToken creati con il comando login.

Configurazione di npm senza utilizzare il comando login

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

    CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text`
  2. 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.

    • Replace (Sostituisci) my_domain con il tuo nome di dominio. CodeArtifact

    • Replace (Sostituisci) 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.

    • Replace (Sostituisci) my_repo con il nome del tuo CodeArtifact repository.

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

    Di seguito URL è riportato un esempio di endpoint del repository.

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

    Il registro URL deve terminare con una barra (/). In caso contrario, non è possibile connettersi al repository.

  3. Usa il npm config set comando per impostare il registro nel tuo CodeArtifact repository. Sostituisci il URL con l'endpoint del repository del URL 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

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

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 sul sito Web della documentazione di npm. Per un elenco dei comandi npm supportati da CodeArtifact, vedere npm Command Support.

Verifica dell'autenticazione e dell'autorizzazione di npm

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'-dopzione fa sì che npm stampi informazioni di debug aggiuntive, incluso il repository. URL Queste informazioni semplificano la conferma che npm è configurato per utilizzare il repository previsto.

Tornare al registro npm predefinito

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

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 mostrato nell'esempio seguente.

npm install lodash --no-progress