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à?
- Quando nella pipeline è necessario eseguire questa attività?
- Ho più progetti npm. È necessario eseguire questa attività per ogni file con estensione npmrc?
- L'agente è dietro un proxy Web. Verrà
npmAuthenticate
configuratonpm/gulp/Grunt
per l'uso del proxy? - La pipeline deve accedere a un feed in un progetto diverso
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 npm
né npm
esegue attività per l'uso del proxy.
A tale scopo, è possibile:
Impostare le variabili
http_proxy
/https_proxy
di ambiente e, facoltativamenteno_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 danpm
.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 - Ripristinare e pubblicare
npm
pacchetti all'esterno dell'organizzazione - npmrc
- npm
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 |