npmAuthenticate@0 - npm-verificatie (voor taaklopers) v0-taak
Gebruik deze taak om npm
referenties op te geven voor een .npmrc
-bestand in uw opslagplaats voor het bereik van de build. Hierdoor kunnen npm
, evenals npm
taaklopers, zoals gulp en Grunt, worden geverifieerd met privéregisters.
Syntaxis
# 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.
Invoer
workingFile
-
.npmrc-bestand om te verifiëren
string
. Verplicht.
Het pad naar het bestand .npmrc
waarmee de registers worden opgegeven 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-serviceverbinding namen 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 besturingsopties naast hun taakinvoer. Zie Opties en algemene taakeigenschappenvoor meer informatie.
Uitvoervariabelen
Geen.
Opmerkingen
Gebruik deze taak om npm
referenties op te geven voor een .npmrc
-bestand in uw opslagplaats voor het bereik van de build. Hierdoor kunnen npm
, evenals npm
taaklopers, zoals gulp en Grunt, worden geverifieerd met privéregisters.
- Hoe werkt deze taak?
- Wanneer in mijn pijplijn moet ik deze taak uitvoeren?
- Ik heb meerdere npm-projecten. Moet ik deze taak uitvoeren voor elk NPMRC-bestand?
- Mijn agent bevindt zich achter een webproxy. Wordt
npmAuthenticate
npm/gulp/Grunt
ingesteld om mijn proxy te gebruiken? - Mijn pijplijn moet toegang hebben tot een feed in een ander project
Hoe werkt deze taak?
Deze taak doorzoekt het opgegeven .npmrc
-bestand op registervermeldingen en voegt vervolgens verificatiegegevens toe voor de gedetecteerde registers 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 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
taakloper gebruikt om pakketten te installeren of te pushen naar een geverifieerde NPM-opslagplaats, zoals Azure Artifacts. Er zijn geen andere bestelvereisten.
Ik heb meerdere npm-projecten. Moet ik deze taak uitvoeren voor elk NPMRC-bestand?
Met deze taak worden alleen verificatiegegevens toegevoegd aan één .npmrc
bestand tegelijk. Als u verificatie nodig hebt voor meerdere .npmrc
bestanden, kunt u de taak meerdere keren uitvoeren, één keer voor elk .npmrc
bestand. U kunt ook een .npmrc
-bestand maken dat alle registers aangeeft die door uw projecten worden gebruikt, npmAuthenticate
uitvoeren 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
npm/gulp/Grunt
ingesteld om mijn proxy te gebruiken?
Het antwoord is: nee. Hoewel deze taak zelf werkt achter een webproxy uw agent is geconfigureerd voor het gebruik van, configureert deze niet npm
of npm
taaklopers om de proxy te gebruiken.
Hiervoor kunt u het volgende doen:
Stel de omgevingsvariabelen in
http_proxy
/https_proxy
enno_proxy
desgewenst op uw proxy-instellingen. Zie npm-configuratie voor meer informatie. Houd er rekening mee dat dit veelgebruikte variabelen zijn die andere niet-npm
hulpprogramma's (bijvoorbeeld curl) ook kunnen gebruiken.Voeg de proxy-instellingen toe aan de npm-configuratiehandmatig met behulp van npm-configuratiesetof door omgevingsvariabelen in te stellen voorafgegaan door
NPM_CONFIG_
.Waarschuwing:
npm
taaklopers zijn mogelijk niet compatibel met alle methoden van proxyconfiguratie die doornpm
worden ondersteund.Geef de proxy op met een opdrachtregelvlag bij het aanroepen van
npm
.- script: npm ci --https-proxy $(agent.proxyurl)
Als voor uw proxy verificatie is vereist, moet u mogelijk een extra buildstap 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 krijgen 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 aan de buildservice. Zie Pakketmachtigingen in Azure Pipelines voor meer informatie.
Voorbeelden
-
Herstel
npm
pakketten voor uw project vanuit een register binnen uw organisatie -
npm
pakketten buiten uw organisatie herstellen en publiceren - npmrc-
- npm
Herstel npm
pakketten voor uw project 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 op te geven voor de npmAuthenticate
taak.
.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
npm
pakketten buiten uw organisatie herstellen en publiceren
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 verwijst naar een Azure Artifacts-feed kan het project al dan niet bevatten. Een URL voor een projectbereikfeed moet het project bevatten en de URL voor een binnen het bereik van een organisatiefeed 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
Voorwaarde | Beschrijving |
---|---|
Pijplijntypen | YAML, klassieke build, klassieke release |
Wordt uitgevoerd op | Agent, DeploymentGroup |
eisen | Geen |
mogelijkheden | Deze taak voldoet niet aan de vereisten voor volgende taken in de taak. |
opdrachtbeperkingen | Welk dan ook |
variabelen instellen | Welk dan ook |
Agentversie | 2.115.0 of hoger |
Taakcategorie | Pakket |