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 npmfö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 npmför , liksom uppgiftslöpare npm som gulp och Grunt, att autentisera med privata register.

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 eventuellt no_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 av npm.

  • 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

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