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?
- Wanneer moet ik deze taak uitvoeren in mijn pijplijn?
- Ik heb meerdere npm-projecten. Moet ik deze taak uitvoeren voor elk NPMRC-bestand?
- Mijn agent bevindt zich achter een webproxy. Wordt
npmAuthenticate
ingesteldnpm/gulp/Grunt
voor het gebruik van mijn proxy? - Mijn pijplijn moet toegang hebben tot een feed in een ander project
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_proxy
https_proxy
/en optioneel inno_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 doornpm
.Geef de proxy op met een opdrachtregelvlag bij het aanroepen
npm
van .- 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 - Pakketten buiten uw organisatie herstellen en publiceren
npm
- npmrc
- npm
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 |