Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Met Azure Artifacts kunnen ontwikkelaars hun pakketten beheren vanuit verschillende bronnen, waaronder zowel openbare registers zoals npmjs.com als privéfeeds. 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.
Azure Artifacts raadt aan twee afzonderlijke configuratiebestanden te gebruiken. De eerste is bedoeld voor verificatie met Azure Artifacts, terwijl de tweede lokaal moet worden bewaard om uw referenties op te slaan. Met deze methode kunt u uw configuratiebestand delen terwijl uw referenties veilig blijven.
Als u het tweede bestand wilt instellen, plaatst u het in uw basismap op uw ontwikkelcomputer en neemt u al uw registerreferenties op. Hierdoor heeft de NPM-client eenvoudig toegang tot uw referenties voor verificatie.
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 met feed.
Selecteer npm in de linkerzijbalk. Als dit de eerste keer is dat u Azure Artifacts met npm gebruikt, controleert u of u de vereisten hebt geïnstalleerd.
Volg de instructies in de sectie Project-installatie om verbinding te maken met uw feed.
Voeg een NPMRC-bestand toe aan de map van uw project, in dezelfde map als uw package.json bestand en plak het volgende fragment erin.
Kopieer het volgende fragment en plak het in 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
Voer de volgende opdracht uit in een opdrachtpromptvenster en plak uw persoonlijke toegangstoken wanneer u hierom wordt gevraagd. Als u klaar bent, kopieert u de gegenereerde base 64-gecodeerde waarde.
Als u linux/Mac gebruikt, kunt u ook de volgende opdracht gebruiken om uw persoonlijke toegangstoken te converteren naar Base 64. Kopieer de resulterende met Base64 gecodeerde waarde.
echo -n "YOUR_PERSONAL_ACCESS-TOKEN" | base64
Vervang de tijdelijke aanduidingen [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] in het .npmrc-bestand van uw gebruiker door het gecodeerde persoonlijke toegangstoken dat is verkregen uit de vorige stap.
Kopieer het volgende fragment en plak dit in 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
Voer de volgende opdracht uit in een opdrachtpromptvenster en plak uw persoonlijke toegangstoken wanneer u hierom wordt gevraagd. Als u klaar bent, kopieert u de gegenereerde base 64-gecodeerde waarde.
Vervang de tijdelijke aanduidingen [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] in het .npmrc-bestand van uw gebruiker door het gecodeerde persoonlijke toegangstoken dat is verkregen uit de vorige stap.
Kopieer het volgende fragment en plak dit in 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
Voer de volgende opdracht uit in een opdrachtpromptvenster en plak uw persoonlijke toegangstoken wanneer u hierom wordt gevraagd. Als u klaar bent, kopieert u de gegenereerde base 64-gecodeerde waarde.
Vervang de tijdelijke aanduidingen [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] in het .npmrc-bestand van uw gebruiker door het gecodeerde persoonlijke toegangstoken dat is verkregen uit de vorige stap.
Meld u aan bij uw Azure DevOps-verzameling en navigeer vervolgens naar uw project.
Selecteer Artefacten en selecteer vervolgens Verbinding maken met feed.
Een nieuw venster verschijnt. Selecteer npm in het navigatiedeelvenster aan de linkerkant.
Volg de opgegeven 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, moet u prioriteit geven aan het instellen van uw npm-verificatietaak aan het begin van uw pijplijn. Deze stap garandeert 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
Als u toegang wilt krijgen tot uw feed vanuit uw pijplijn, moet u ervoor zorgen dat de rol van de buildservice is ingesteld op Feed and Upstream Reader (Inzender) in de machtigingen voor feedinstellingen>.
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
Deze fout geeft aan dat de map npm-modules niet is toegevoegd aan uw pad. Voer de installatie van de Node.js 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
Fout: code E401 npm ERR! Kan niet verifiëren: -> 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:
Als er een 403-fout optreedt, kan dit duiden op een naamconflict. In Azure Artifacts zijn pakketten onveranderbaar, wat betekent dat wanneer u een pakket naar uw feed publiceert, het versienummer permanent wordt gereserveerd. Zelfs als u het verwijdert, kunt u geen nieuw pakket met hetzelfde versienummer publiceren. Als u dit probleem wilt oplossen, werkt u de pakketversie in uw package.json-bestand bij en probeert u het opnieuw.