Condividi tramite


npmAuthenticate@0 - attività npm authenticate (for task runners) v0

Usare questa attività per fornire npm le credenziali a un .npmrc file nel repository per l'ambito della compilazione. In questo modo npm, oltre npm agli strumenti di esecuzione delle attività come gulp e Grunt, possono eseguire l'autenticazione con registri privati.

Sintassi

# npm authenticate (for task runners) v0
# Don't use this task if you're also using the npm task. Provides npm credentials to an .npmrc file in your repository for the scope of the build. This enables npm task runners like gulp and Grunt to authenticate with private registries.
- task: npmAuthenticate@0
  inputs:
    workingFile: # string. Required. .npmrc file to authenticate. 
    #customEndpoint: # string. Credentials for registries outside this organization/collection.
# npm Authenticate (for task runners) v0
# Don't use this task if you're also using the npm task. Provides npm credentials to an .npmrc file in your repository for the scope of the build. This enables npm task runners like Gulp and Grunt to authenticate with private registries.
- task: npmAuthenticate@0
  inputs:
    #workingFile: # string. .npmrc file to authenticate. 
    #customEndpoint: # string. Credentials for registries outside this account/collection.

Input

workingFile - File con estensione npmrc per l'autenticazione
string. Obbligatorio.

Percorso del .npmrc file che specifica i registri con cui si desidera lavorare. Selezionare il file, non la cartella , ad esempio /packages/mypackage.npmrc.


workingFile - File con estensione npmrc per l'autenticazione
string.

Percorso del .npmrc file che specifica i registri con cui si desidera lavorare. Selezionare il file, non la cartella , ad esempio /packages/mypackage.npmrc.


customEndpoint - Credenziali per registri esterni a questa organizzazione/raccolta
string.

Elenco delimitato da virgole di nomi di connessione del servizio npm per registri esterni all'organizzazione o alla raccolta. Il file specificato .npmrc deve contenere voci del Registro di sistema corrispondenti alle connessioni al servizio. Se sono necessari solo registri nell'organizzazione o nella raccolta, lasciare vuoto questo campo. Le credenziali della compilazione vengono usate automaticamente.


customEndpoint - Credenziali per registri esterni a questo account/raccolta
string.

Elenco delimitato da virgole di nomi di connessione del servizio npm per registri esterni all'organizzazione o alla raccolta. Il file specificato .npmrc deve contenere voci del Registro di sistema corrispondenti alle connessioni al servizio. Se sono necessari solo registri nell'organizzazione o nella raccolta, lasciare vuoto questo campo. Le credenziali della compilazione vengono usate automaticamente.


Opzioni di controllo attività

Tutte le attività hanno opzioni di controllo oltre ai relativi input dell'attività. Per altre informazioni, vedere Opzioni di controllo e proprietà comuni delle attività.

Variabili di output

No.

Osservazioni

Usare questa attività per fornire npm le credenziali a un .npmrc file nel repository per l'ambito della compilazione. In questo modo npm, oltre npm agli strumenti di esecuzione delle attività come gulp e Grunt, possono eseguire l'autenticazione con registri privati.

Come funziona questa attività?

Questa attività cerca nel file specificato .npmrc le voci del Registro di sistema, quindi aggiunge i dettagli di autenticazione per i registri individuati alla fine del file. Per tutti i registri nell'organizzazione/raccolta corrente, vengono usate le credenziali della compilazione. Per i registri in un'organizzazione diversa o ospitati da terze parti, gli URI del Registro di sistema verranno confrontati con gli URI delle connessioni del servizio npm specificate dall'input customEndpoint e verranno usate le credenziali corrispondenti. Il .npmrc file verrà ripristinato allo stato originale alla fine dell'esecuzione della pipeline.

Quando nella pipeline è necessario eseguire questa attività?

Questa attività deve essere eseguita prima di usare npm, o uno npm strumento di esecuzione attività, per installare o eseguire il push di pacchetti in un repository npm autenticato, ad esempio Azure Artifacts. Non esistono altri requisiti di ordinamento.

Ho più progetti npm. È necessario eseguire questa attività per ogni file con estensione npmrc?

Questa attività aggiungerà solo i dettagli di autenticazione a un .npmrc file alla volta. Se è necessaria l'autenticazione per più .npmrc file, è possibile eseguire l'attività più volte, una volta per ogni .npmrc file. In alternativa, è consigliabile creare un .npmrc file che specifica tutti i registri usati dai progetti, in esecuzione npmAuthenticate su questo .npmrc file e quindi impostare una variabile di ambiente per designare questo .npmrc file come file di configurazione npm per utente.

- task: npmAuthenticate@0
  inputs:
    workingFile: $(agent.tempdirectory)/.npmrc
- script: echo ##vso[task.setvariable variable=NPM_CONFIG_USERCONFIG]$(agent.tempdirectory)/.npmrc
- script: npm ci
  workingDirectory: project1
- script: npm ci
  workingDirectory: project2

L'agente è dietro un proxy Web. Verrà npmAuthenticate configurato npm/gulp/Grunt per l'uso del proxy?

La risposta è no. Anche se l'attività stessa funzionerà dietro un proxy Web che l'agente è stato configurato per l'uso, non configura npmnpm esegue attività per l'uso del proxy.

A tale scopo, è possibile:

  • Impostare le variabili http_proxy/https_proxy di ambiente e, facoltativamente no_proxy , sulle impostazioni del proxy. Per informazioni dettagliate , vedere npm config ( Configurazione npm ). Si noti che queste sono variabili di uso comune che possono essere usate anche da altri strumenti nonnpm (ad esempio curl).

  • Aggiungere le impostazioni proxy alla configurazione di npm manualmente usando il set di configurazione npm o impostando le variabili di ambiente con il prefisso NPM_CONFIG_.

    Attenzione:
    npm Gli strumenti di esecuzione delle attività potrebbero non essere compatibili con tutti i metodi di configurazione proxy supportati da npm.

  • Specificare il proxy con un flag della riga di comando quando si chiama npm.

    - script: npm ci --https-proxy $(agent.proxyurl)
    

Se il proxy richiede l'autenticazione, potrebbe essere necessario aggiungere un passaggio di compilazione aggiuntivo per costruire un URI proxy autenticato.

- script: node -e "let u = url.parse(`$(agent.proxyurl)`); u.auth = `$(agent.proxyusername):$(agent.proxypassword)`; console.log(`##vso[task.setvariable variable=proxyAuthUri;issecret=true]` + url.format(u))"
- script: npm publish --https-proxy $(proxyAuthUri)

La pipeline deve accedere a un feed in un progetto diverso

Se la pipeline è in esecuzione in un progetto diverso da quello che ospita il feed, è necessario configurare l'altro progetto per concedere l'accesso in lettura/scrittura al servizio di compilazione. Per altri dettagli , vedere Autorizzazioni per i pacchetti in Azure Pipelines .

Esempio

Ripristinare npm i pacchetti per il progetto da un registro all'interno dell'organizzazione

Se gli unici registri autenticati usati sono registri di Azure Artifacts nell'organizzazione, è sufficiente specificare il percorso di un .npmrc file per l'attività npmAuthenticate .

.npmrc

registry=https://pkgs.dev.azure.com/{organization}/_packaging/{feed}/npm/registry/
always-auth=true

npm

- task: npmAuthenticate@0
  inputs:
    workingFile: .npmrc
- script: npm ci
# ...
- script: npm publish

Ripristinare e pubblicare npm pacchetti all'esterno dell'organizzazione

Se contiene .npmrc registri di Azure Artifacts di un'organizzazione diversa o usa un repository di pacchetti autenticato di terze parti, sarà necessario configurare le connessioni del servizio npm e specificarle nell'input customEndpoint . Anche i registri all'interno dell'organizzazione di Azure Artifacts verranno autenticati automaticamente.

.npmrc

registry=https://pkgs.dev.azure.com/{organization}/{project}/_packaging/{feed}/npm/registry/
@{scope}:registry=https://pkgs.dev.azure.com/{otherorganization}/_packaging/{feed}/npm/registry/
@{otherscope}:registry=https://{thirdPartyRepository}/npm/registry/
always-auth=true

L'URL del Registro di sistema che punta a un feed di Azure Artifacts può contenere o meno il progetto. Un URL per un feed con ambito progetto deve contenere il progetto e l'URL per un feed con ambito organizzazione non deve contenere il progetto. Altre informazioni sui feed con ambito progetto.

npm

- task: npmAuthenticate@0
  inputs:
    workingFile: .npmrc
    customEndpoint: OtherOrganizationNpmConnection, ThirdPartyRepositoryNpmConnection
- script: npm ci
# ...
- script: npm publish -registry https://pkgs.dev.azure.com/{otherorganization}/_packaging/{feed}/npm/registry/

OtherOrganizationNpmConnection e ThirdPartyRepositoryNpmConnection sono i nomi delle connessioni al servizio npm configurate e autorizzate per l'uso nella pipeline e hanno URL corrispondenti a quelli nel file specificato .npmrc .

Requisiti

Requisito Descrizione
Tipi di pipeline YAML, build classica, versione classica
Viene eseguito in Agente, DeploymentGroup
Richieste Nessuno
Capabilities Questa attività non soddisfa le richieste per le attività successive nel processo.
Restrizioni dei comandi Qualsiasi
Variabili impostabili Qualsiasi
Versione agente 2.115.0 o versione successiva
Categoria attività Pacchetto