Verbinding maken uw NPM-project naar Azure Artifacts-feeds
Artikel
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Met Azure Artifacts kunnen ontwikkelaars verschillende pakkettypen publiceren en installeren vanuit feeds en openbare registers, zoals npmjs.com. Als u wilt verifiëren met Azure Artifacts, moet u uw npm-configuratiebestand configureren.
Dit bestand bevat feed-URL's en referenties die worden gebruikt door npm, met opties voor het aanpassen van uw npm-clientgedrag, zoals het instellen van proxy's, het definiëren van standaardpakketlocaties of het configureren van privépakketfeeds. Het NPMRC-bestand bevindt zich meestal in de basismap van de gebruiker, maar kan ook worden gemaakt op projectniveau om standaardinstellingen te overschrijven. Door het .npmrc-bestand te wijzigen, kunnen gebruikers hun npm-ervaring aanpassen aan hun specifieke vereisten.
Vereisten
Een Azure DevOps-organisatie en een project. Maak een organisatie of een project als u dat nog niet hebt gedaan.
Voor aanbevolen procedures is het raadzaam om twee afzonderlijke configuratiebestanden te gebruiken. De eerste wordt gebruikt voor verificatie met Azure Artifacts, terwijl de tweede lokaal wordt opgeslagen en uw referenties bevat.
Als u het tweede bestand wilt instellen, plaatst u het in uw basismap op uw ontwikkelcomputer en neemt u al uw registerreferenties op. Op deze manier heeft de npm-client eenvoudig toegang tot uw referenties voor verificatie, zodat u uw configuratiebestand kunt delen terwijl uw referenties veilig blijven.
De volgende stappen helpen u bij het instellen van het eerste configuratiebestand:
Notitie
vsts-npm-auth wordt niet ondersteund in Azure DevOps Server.
Meld u aan bij uw Azure DevOps-organisatie en navigeer vervolgens naar uw project.
Selecteer Artefacten en selecteer vervolgens Verbinding maken die u wilt invoeren.
Selecteer npm in het linkernavigatiedeelvenster.
Als dit de eerste keer is dat u Azure Artifacts met npm gebruikt, selecteert u De hulpprogramma's ophalen en volgt u de instructies om de vereisten te installeren.
Volg de instructies in De installatie van Project om verbinding te maken met uw feed.
Voeg een NPMRC-bestand toe aan de map van uw project, in dezelfde map als het package.json-bestand en kopieer het volgende fragment erin.
Kopieer het volgende fragment naar uw npmrc-bestand op gebruikersniveau:
Feed met organisatiebereik:
; begin auth token
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/:username=[ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Feed met projectbereik:
; begin auth token
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Selecteer uw verzameling en navigeer naar uw project.
Selecteer Artefacten en selecteer vervolgens Verbinding maken die u wilt invoeren.
Selecteer npm in het linkernavigatiedeelvenster.
Als dit de eerste keer is dat u Azure Artifacts met npm gebruikt, selecteert u De hulpprogramma's ophalen en volgt u de instructies om de vereisten te installeren.
Volg de instructies in De installatie van Project om uw configuratiebestand in te stellen.
Voeg een NPMRC-bestand toe aan de map van uw project, in dezelfde map als het package.json-bestand en kopieer het volgende fragment erin.
Kopieer het volgende codefragment naar het NPMRC-bestand op gebruikersniveau:
Feed met verzamelingsbereik:
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Feed met projectbereik:
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Selecteer uw verzameling en navigeer naar uw project.
Selecteer Artefacten en selecteer vervolgens Verbinding maken die u wilt invoeren.
Selecteer npm in het linkernavigatiedeelvenster.
Als dit de eerste keer is dat u Azure Artifacts met npm gebruikt, selecteert u De hulpprogramma's ophalen en volgt u de instructies om de vereisten te installeren.
Volg de instructies in De installatie van Project om uw configuratiebestand in te stellen.
Voeg een NPMRC-bestand toe aan de map van uw project, in dezelfde map als het package.json-bestand en kopieer het volgende fragment erin.
Kopieer het volgende codefragment naar het NPMRC-bestand op gebruikersniveau:
Feed met verzamelingsbereik:
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Feed met projectbereik:
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Vervang beide [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] waarden in het NPMRC-bestand van uw gebruiker door uw persoonlijke toegangstoken uit stap 3.
Selecteer uw verzameling en navigeer naar uw project.
Selecteer Artefacten en selecteer vervolgens Verbinding maken die u wilt invoeren.
Er wordt een nieuw venster weergegeven. Selecteer npm in het navigatiedeelvenster aan de linkerkant.
Volg de instructies voor het configureren van uw project en gebruikers.npmrc-bestanden .
Tip
Het gebruik van meerdere registers in NPMRC-bestanden wordt ondersteund met bereiken en upstream-bronnen.
Pijplijnverificatie
Om te verifiëren met uw pijplijn, raadt Azure Artifacts aan om de npm-verificatietaak te gebruiken.
Wanneer u taaklopers zoals gulp of Grunt gebruikt, is het belangrijk dat u uw npm-verificatietaak aan het begin van uw pijplijn opneemt. Deze actie zorgt ervoor dat uw referenties worden opgenomen in het NPMRC-bestand van uw project en worden bewaard tijdens de pijplijnuitvoering, zodat de volgende stappen toegang hebben tot de referenties in het configuratiebestand.
Navigeer naar uw project, selecteer Pijplijnen en selecteer vervolgens uw pijplijndefinitie.
Selecteer Bewerken om uw pijplijn te wijzigen.
Selecteer + deze optie om een nieuwe taak toe te voegen aan uw pijplijn.
Navigeer naar uw project, selecteer Pipelines>Builds en selecteer vervolgens uw builddefinitie.
Selecteer Bewerken om de build-pijplijn te wijzigen.
Selecteer + deze optie om een nieuwe taak toe te voegen aan uw build-pijplijn.
Zoek de npm-verificatietaak en selecteer vervolgens Toevoegen.
Selecteer uw NPMRC-bestand en selecteer vervolgens Opslaan en wachtrij wanneer u klaar bent.
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc ## Path to the npmrc file
customEndpoint: #Optional ## Comma-separated list of npm service connection names for registries from external organizations. For registries in your org, leave this blank
Notitie
Zorg ervoor dat de rol van de buildservice is ingesteld op Feed and Upstream Reader (Inzender) in uw feedinstellingen voor uw pijplijn om toegang te krijgen tot uw feed.
Notitie
Als uw organisatie een firewall of een proxyserver gebruikt, moet u ervoor zorgen dat u de juiste domein-URL's toestaat. Zie Toegestane IP-adressen en domein-URL's voor meer informatie.
Problemen oplossen
vsts-npm-auth wordt niet herkend
Als er de volgende fout optreedt tijdens de uitvoering van het project:
Cmd: 'vsts-npm-auth' is not recognized as an internal or external command, operable program or batch file.
PowerShell: vsts-npm-auth : The term 'vsts-npm-auth' is not recognized as the name of a cmdlet, function, script file, or operable program.
Dan is het waarschijnlijk dat de map npm-modules niet is toegevoegd aan uw pad. Voer hiervoor de Node.js setup opnieuw uit en zorg ervoor dat u de Add to PATH optie selecteert.
U kunt ook de map npm-modules toevoegen aan uw pad door de variabele PATH te %APPDATA%\npm wijzigen in de opdrachtprompt of $env:APPDATA\npm in PowerShell.
Kan niet verifiëren
Als er een E401-fout optreedt: code E401 npm ERR! Unable to authenticate. Voer de vsts-npm-auth opdracht uit met de vlag -F om opnieuw te verifiëren.
vsts-npm-auth -config .npmrc -F
Vsts-npm-auth opnieuw instellen
Volg deze stappen om uw referenties voor vsts-npm-auth opnieuw in te stellen:
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie: https://aka.ms/ContentUserFeedback.