npmAuthenticate@0 - attività npm authenticate (for task runners) v0
Usare questa attività per fornire le credenziali npm
a un file .npmrc
nel repository per l'ambito della compilazione. In questo modo npm
, oltre a npm
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.
Ingressi dati
workingFile
-
file npmrc per autenticare
string
. Obbligatorio.
Percorso del file di .npmrc
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 connessione al servizio npm nomi per i registri esterni all'organizzazione o alla raccolta. Il file di .npmrc
specificato 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 delle attività
Tutte le attività dispongono di opzioni di controllo oltre ai relativi input attività. Per altre informazioni, vedere Opzioni di controllo e proprietà comuni delle attività.
Variabili di output
Nessuno.
Osservazioni:
Usare questa attività per fornire le credenziali npm
a un file .npmrc
nel repository per l'ambito della compilazione. In questo modo npm
, oltre a npm
strumenti di esecuzione delle attività come gulp e Grunt, possono eseguire l'autenticazione con registri privati.
- Come funziona questa attività?
- Quando è necessario eseguire questa attività nella pipeline?
- Ho più progetti npm. È necessario eseguire questa attività per ogni file con estensione npmrc?
- L'agente si trova dietro un proxy Web. Verrà
npmAuthenticate
configuratanpm/gulp/Grunt
per l'uso del proxy? - la pipeline personale deve accedere a un feed in un altro progetto
Come funziona questa attività?
Questa attività cerca nel file di .npmrc
specificato 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 ospitata 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 file .npmrc
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 strumento di esecuzione attività npm
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 file .npmrc
alla volta. Se è necessaria l'autenticazione per più file di .npmrc
, è possibile eseguire l'attività più volte, una volta per ogni file .npmrc
. In alternativa, prendere in considerazione la creazione di un file di .npmrc
che specifica tutti i registri usati dai progetti, l'esecuzione di npmAuthenticate
in questo file .npmrc
e quindi l'impostazione di una variabile di ambiente per designare questo file .npmrc
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 si trova dietro un proxy Web. Verrà npmAuthenticate
configurata npm/gulp/Grunt
per l'uso del proxy?
La risposta è no. Anche se questa attività funzionerà dietro un proxy Web l'agente è stato configurato per l'uso di, non configura npm
o npm
strumenti di esecuzione attività per l'uso del proxy.
A tale scopo, è possibile:
Impostare le variabili di ambiente
http_proxy
/https_proxy
e, facoltativamente,no_proxy
sulle impostazioni proxy. Per informazioni dettagliate, vedere npm config. Si noti che si tratta di 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 npm config seto impostando variabili di ambiente precedute da
NPM_CONFIG_
.attenzione:
npm
utilità di esecuzione delle attività potrebbe non essere compatibile 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 del pacchetto in Azure Pipelines.
Esempi
-
Ripristinare pacchetti
npm
per il progetto da un registro all'interno dell'organizzazione -
Ripristinare e pubblicare pacchetti di
npm
all'esterno dell'organizzazione - npmrc
- npm
Ripristinare i pacchetti npm
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 file .npmrc
all'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 pacchetti npm
all'esterno dell'organizzazione
Se il .npmrc
contiene registri azure Artifacts di un'organizzazione diversa o usa un repository di pacchetti autenticato di terze parti, è necessario configurare 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 del servizio npm configurate e autorizzate per l'uso nella pipeline e hanno URL corrispondenti a quelli nel file di .npmrc
specificato.
Requisiti
Requisito | Descrizione |
---|---|
Tipi di pipeline | YAML, build classica, versione classica |
Viene eseguito in | Agente, DeploymentGroup |
richieste | Nessuno |
funzionalità di | Questa attività non soddisfa alcuna richiesta di attività successive nel processo. |
restrizioni dei comandi | Qualunque |
variabili impostabili | Qualunque |
Versione dell'agente | 2.115.0 o versione successiva |
Categoria attività | Pacchetto |