npmAuthenticate@0 – npm-autentisera (för aktivitetslöpare) v0-uppgift
Använd den här uppgiften om du vill ange npm
autentiseringsuppgifter för en .npmrc
fil på lagringsplatsen för byggets omfång. Detta gör det möjligt npm
för , liksom uppgiftslöpare npm
som gulp och Grunt, att autentisera med privata register.
Syntax
# 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.
Indata
workingFile
- .npmrc-fil som ska autentiseras
string
. Krävs.
Sökvägen till .npmrc
filen som anger de register som du vill arbeta med. Välj filen, inte mappen, till exempel /packages/mypackage.npmrc
.
workingFile
- .npmrc-fil som ska autentiseras
string
.
Sökvägen till .npmrc
filen som anger de register som du vill arbeta med. Välj filen, inte mappen, till exempel /packages/mypackage.npmrc
.
customEndpoint
- Autentiseringsuppgifter för register utanför den här organisationen/samlingen
string
.
Den kommaavgränsade listan över npm-tjänstanslutningsnamn för register utanför den här organisationen eller samlingen. Den angivna .npmrc
filen måste innehålla registerposter som motsvarar tjänstanslutningarna. Om du bara behöver register i den här organisationen eller samlingen lämnar du det tomt. Byggets autentiseringsuppgifter används automatiskt.
customEndpoint
- Autentiseringsuppgifter för register utanför det här kontot/samlingen
string
.
Den kommaavgränsade listan över npm-tjänstanslutningsnamn för register utanför den här organisationen eller samlingen. Den angivna .npmrc
filen måste innehålla registerposter som motsvarar tjänstanslutningarna. Om du bara behöver register i den här organisationen eller samlingen lämnar du det tomt. Byggets autentiseringsuppgifter används automatiskt.
Alternativ för aktivitetskontroll
Alla aktiviteter har kontrollalternativ utöver sina uppgiftsindata. Mer information finns i Kontrollalternativ och vanliga uppgiftsegenskaper.
Utdatavariabler
Inga.
Kommentarer
Använd den här uppgiften om du vill ange npm
autentiseringsuppgifter för en .npmrc
fil på lagringsplatsen för byggets omfång. Detta gör det möjligt npm
för , liksom uppgiftslöpare npm
som gulp och Grunt, att autentisera med privata register.
- Hur fungerar den här uppgiften?
- När ska jag köra den här uppgiften i min pipeline?
- Jag har flera npm-projekt. Måste jag köra den här uppgiften för varje .npmrc-fil?
- Min agent finns bakom en webbproxy. Kommer
npmAuthenticate
jag att konfigureranpm/gulp/Grunt
att använda min proxy? - Min pipeline måste komma åt en feed i ett annat projekt
Hur fungerar den här uppgiften?
Den här aktiviteten söker i den angivna .npmrc
filen efter registerposter och lägger sedan till autentiseringsinformation för de identifierade registren i slutet av filen. För alla register i den aktuella organisationen/samlingen används byggets autentiseringsuppgifter. För register i en annan organisation eller som hanteras av en tredje part jämförs register-URI:erna med URI:erna för npm-tjänstanslutningarna som anges av customEndpoint
indata och motsvarande autentiseringsuppgifter används. Filen .npmrc
återställs till sitt ursprungliga tillstånd i slutet av pipelinekörningen.
När ska jag köra den här uppgiften i min pipeline?
Den här aktiviteten måste köras innan du använder npm
, eller en npm
aktivitetskörare, för att installera eller push-överföra paket till en autentiserad npm-lagringsplats, till exempel Azure Artifacts. Det finns inga andra ordningskrav.
Jag har flera npm-projekt. Måste jag köra den här uppgiften för varje .npmrc-fil?
Den här uppgiften lägger bara till autentiseringsinformation i en .npmrc
fil i taget. Om du behöver autentisering för flera .npmrc
filer kan du köra uppgiften flera gånger, en gång för varje .npmrc
fil. Alternativt kan du överväga att skapa en .npmrc
fil som anger alla register som används av dina projekt, körs npmAuthenticate
på den här .npmrc
filen och sedan anger en miljövariabel för att ange den här .npmrc
filen som npm per användare-konfigurationsfil.
- 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
Min agent finns bakom en webbproxy. Kommer npmAuthenticate
jag att konfigurera npm/gulp/Grunt
att använda min proxy?
Svaret är nej. Även om den här uppgiften i sig fungerar bakom en webbproxy som agenten har konfigurerats att använda, konfigurerar npm
den inte eller npm
aktivitetslöpare för att använda proxyn.
För att göra det kan du antingen:
Ange miljövariablerna
http_proxy
/https_proxy
och eventuelltno_proxy
till proxyinställningarna. Mer information finns i npm-konfiguration . Observera att dessa ofta används variabler som andra icke-verktygnpm
(t.ex. curl) också kan använda.Lägg till proxyinställningarna i npm-konfigurationen, antingen manuellt, med hjälp av npm-konfigurationsuppsättningen eller genom att ange miljövariabler med
NPM_CONFIG_
prefixet .Försiktighet:
npm
aktivitetslöpare kanske inte är kompatibla med alla metoder för proxykonfiguration som stöds avnpm
.Ange proxyn med en kommandoradsflagga när du anropar
npm
.- script: npm ci --https-proxy $(agent.proxyurl)
Om proxyn kräver autentisering kan du behöva lägga till ytterligare ett byggsteg för att skapa en autentiserad proxy-URI.
- 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)
Min pipeline måste komma åt en feed i ett annat projekt
Om pipelinen körs i ett annat projekt än det projekt som är värd för feeden måste du konfigurera det andra projektet för att bevilja läs-/skrivåtkomst till byggtjänsten. Mer information finns i Paketbehörigheter i Azure Pipelines .
Exempel
- Återställa
npm
paket för projektet från ett register i din organisation - Återställa och publicera
npm
paket utanför organisationen - npmrc
- npm
Återställa npm
paket för projektet från ett register i din organisation
Om de enda autentiserade register som du använder är Azure Artifacts-register i din organisation behöver du bara ange sökvägen till en .npmrc
fil till uppgiften 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
Återställa och publicera npm
paket utanför organisationen
Om din .npmrc
innehåller Azure Artifacts-register från en annan organisation eller använder en autentiserad customEndpoint
paketlagringsplats från tredje part måste du konfigurera npm-tjänstanslutningar och ange dem i indata.
Register i din Azure Artifacts-organisation autentiseras också automatiskt.
.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
Register-URL:en som pekar på en Azure Artifacts-feed kanske inte innehåller projektet. En URL för ett projektomfattande flöde måste innehålla projektet och URL:en för ett organisationsomfattande flöde får inte innehålla projektet. Läs mer om projektomfattande feeds.
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
och ThirdPartyRepositoryNpmConnection
är namnen på npm-tjänstanslutningar som har konfigurerats och godkänts för användning i din pipeline och som har URL:er som matchar dem i den angivna .npmrc
filen.
Krav
Krav | Beskrivning |
---|---|
Pipelinetyper | YAML, klassisk version, klassisk version |
Körs på | Agent, DeploymentGroup |
Krav | Ingen |
Funktioner | Den här aktiviteten uppfyller inte några krav för efterföljande uppgifter i jobbet. |
Kommandobegränsningar | Valfri |
Inställningsbara variabler | Valfri |
Agentversion | 2.115.0 eller senare |
Uppgiftskategori | Paket |