npmAuthenticate@0 - npm-verificatie (voor taaklopers) v0-taak

Gebruik deze taak om referenties op te geven npm voor een .npmrc bestand in uw opslagplaats voor het bereik van de build. Hierdoor kunnen npm, evenals npm taaklopers zoals gulp en Grunt, zich verifiëren bij privéregisters.

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.

Invoerwaarden

workingFile - .npmrc-bestand om te verifiëren
string. Vereist.

Het pad naar het .npmrc bestand dat de registers aangeeft waarmee u wilt werken. Selecteer het bestand, niet de map, zoals /packages/mypackage.npmrc.


workingFile - .npmrc-bestand om te verifiëren
string.

Het pad naar het .npmrc bestand dat de registers aangeeft waarmee u wilt werken. Selecteer het bestand, niet de map, zoals /packages/mypackage.npmrc.


customEndpoint - Referenties voor registers buiten deze organisatie/verzameling
string.

De door komma's gescheiden lijst met npm-serviceverbindingsnamen voor registers buiten deze organisatie of verzameling. Het opgegeven .npmrc bestand moet registervermeldingen bevatten die overeenkomen met de serviceverbindingen. Als u alleen registers in deze organisatie of verzameling nodig hebt, laat u dit leeg. De referenties van de build worden automatisch gebruikt.


customEndpoint - Referenties voor registers buiten dit account/deze verzameling
string.

De door komma's gescheiden lijst met npm-serviceverbindingsnamen voor registers buiten deze organisatie of verzameling. Het opgegeven .npmrc bestand moet registervermeldingen bevatten die overeenkomen met de serviceverbindingen. Als u alleen registers in deze organisatie of verzameling nodig hebt, laat u dit leeg. De referenties van de build worden automatisch gebruikt.


Opties voor taakbeheer

Alle taken hebben naast de taakinvoer besturingsopties. Zie Besturingsopties en algemene taakeigenschappen voor meer informatie.

Uitvoervariabelen

Geen.

Opmerkingen

Gebruik deze taak om referenties op te geven npm voor een .npmrc bestand in uw opslagplaats voor het bereik van de build. Hierdoor kunnen npm, evenals npm taaklopers zoals gulp en Grunt, zich verifiëren bij privéregisters.

Hoe werkt deze taak?

Deze taak doorzoekt het opgegeven .npmrc bestand naar registervermeldingen en voegt vervolgens verificatiedetails voor de gedetecteerde registers toe aan het einde van het bestand. Voor alle registers in de huidige organisatie/verzameling worden de referenties van de build gebruikt. Voor registers in een andere organisatie of gehost door een derde partij, worden de register-URI's vergeleken met de URI's van de npm-serviceverbindingen die zijn opgegeven door de customEndpoint invoer en worden de bijbehorende referenties gebruikt. Het .npmrc bestand wordt teruggezet naar de oorspronkelijke status aan het einde van de pijplijnuitvoering.

Wanneer moet ik deze taak uitvoeren in mijn pijplijn?

Deze taak moet worden uitgevoerd voordat u npm, of een npm taakrunner, gebruikt om pakketten te installeren of te pushen naar een geverifieerde NPM-opslagplaats, zoals Azure Artifacts. Er zijn geen andere volgordevereisten.

Ik heb meerdere npm-projecten. Moet ik deze taak uitvoeren voor elk NPMRC-bestand?

Met deze taak worden alleen verificatiedetails aan één .npmrc bestand tegelijk toegevoegd. Als u verificatie voor meerdere .npmrc bestanden nodig hebt, kunt u de taak meerdere keren uitvoeren, één keer voor elk .npmrc bestand. U kunt ook een .npmrc bestand maken met alle registers die door uw projecten worden gebruikt, uitvoeren npmAuthenticate op dit .npmrc bestand en vervolgens een omgevingsvariabele instellen om dit .npmrc bestand aan te wijzen als het npm-configuratiebestand per gebruiker.

- 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

Mijn agent bevindt zich achter een webproxy. Wordt npmAuthenticate ingesteld npm/gulp/Grunt voor het gebruik van mijn proxy?

Het antwoord is: nee. Hoewel deze taak zelf werkt achter een webproxy die uw agent is geconfigureerd voor gebruik, worden taaklopers niet geconfigureerd npm om npm de proxy te gebruiken.

Hiervoor kunt u het volgende doen:

  • Stel de omgevingsvariabelen http_proxyhttps_proxy/en optioneel in no_proxy op uw proxy-instellingen. Zie npm-configuratie voor meer informatie. Houd er rekening mee dat dit veelgebruikte variabelen zijn die ook andere niet-hulpprogramma'snpm (bijvoorbeeld curl) kunnen gebruiken.

  • Voeg de proxy-instellingen toe aan de npm-configuratie, handmatig, met behulp van npm-configuratieset of door omgevingsvariabelen in te stellen met NPM_CONFIG_het voorvoegsel .

    Voorzichtigheid:
    npm taakrunners zijn mogelijk niet compatibel met alle methoden van proxyconfiguratie die worden ondersteund door npm.

  • Geef de proxy op met een opdrachtregelvlag bij het aanroepen npmvan .

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

Als verificatie is vereist voor uw proxy, moet u mogelijk een extra build-stap toevoegen om een geverifieerde proxy-URI te maken.

- 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)

Mijn pijplijn moet toegang hebben tot een feed in een ander project

Als de pijplijn wordt uitgevoerd in een ander project dan het project dat als host fungeert voor de feed, moet u het andere project instellen om lees-/schrijftoegang te verlenen tot de buildservice. Zie Pakketmachtigingen in Azure Pipelines voor meer informatie.

Voorbeelden

Pakketten voor uw project herstellen npm vanuit een register binnen uw organisatie

Als de enige geverifieerde registers die u gebruikt Azure Artifacts-registers in uw organisatie zijn, hoeft u alleen het pad naar een .npmrc bestand naar de npmAuthenticate taak op te geven.

.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

Pakketten buiten uw organisatie herstellen en publiceren npm

Als uw .npmrc Azure Artifacts-registers van een andere organisatie bevat of een geverifieerde pakketopslagplaats van derden gebruikt, moet u npm-serviceverbindingen instellen en deze opgeven in de customEndpoint invoer. Registers binnen uw Azure Artifacts-organisatie worden ook automatisch geverifieerd.

.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

De register-URL die naar een Azure Artifacts-feed verwijst, kan het project al dan niet bevatten. Een URL voor een feed met projectbereik moet het project bevatten en de URL voor een feed met organisatiebereik mag het project niet bevatten. Meer informatie over projectbereikfeeds.

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 en ThirdPartyRepositoryNpmConnection zijn de namen van npm-serviceverbindingen die zijn geconfigureerd en geautoriseerd voor gebruik in uw pijplijn en URL's hebben die overeenkomen met die in het opgegeven .npmrc bestand.

Vereisten

Vereiste Beschrijving
Pijplijntypen YAML, klassieke build, klassieke release
Wordt uitgevoerd op Agent, DeploymentGroup
Eisen Geen
Functies Deze taak voldoet niet aan eventuele vereisten voor volgende taken in de taak.
Opdrachtbeperkingen Alle
Instelbare variabelen Alle
Agentversie 2.115.0 of hoger
Taakcategorie Pakket