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.
Indice
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
--domainmy_domain
--domain-owner111122223333
--repositorymy_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
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-owner111122223333
--query authorizationToken --output text`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. CodeArtifactReplace (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-owner111122223333
--repositorymy_repo
--format npmDi 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.
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.awsUsa 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_TOKENPer 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 laalways-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
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'-d
opzione 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