Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Mit Azure Artifacts können Entwickler ihre Pakete aus verschiedenen Quellen verwalten, einschließlich öffentlicher Registrierungen wie npmjs.com und privaten Feeds. Um sich mit Azure Artifacts zu authentifizieren, müssen Sie Ihre npm-Konfigurationsdatei konfigurieren. Diese Datei enthält Feed-URLs und Anmeldeinformationen, die von npm verwendet werden, und bietet Optionen zum Anpassen des npm-Clientverhaltens, z. B. das Einrichten von Proxys, das Definieren von Standardpaketspeicherorten oder das Konfigurieren privater Paketfeeds. Die NPMRC-Datei befindet sich in der Regel im Startverzeichnis des Benutzers, kann aber auch auf Projektebene erstellt werden, um die Standardeinstellungen außer Kraft zu setzen.
Azure Artifacts empfiehlt die Verwendung von zwei separaten Konfigurationsdateien. Der erste dient der Authentifizierung mit Azure Artifacts, während die zweite lokal aufbewahrt werden sollte, um Ihre Anmeldeinformationen zu speichern. Mit diesem Ansatz können Sie Ihre Konfigurationsdatei freigeben, während Ihre Anmeldeinformationen sicher bleiben.
Um die zweite Datei einzurichten, platzieren Sie sie einfach in Ihrem Startverzeichnis auf Ihrem Entwicklungscomputer, und fügen Sie alle Ihre Registrierungsanmeldeinformationen ein. Dadurch kann der npm-Client auf einfache Weise auf Ihre Anmeldeinformationen für die Authentifizierung zugreifen.
Die folgenden Schritte führen Sie durch das Einrichten der ersten Konfigurationsdatei:
Hinweis
vsts-npm-auth wird in Azure DevOps Server nicht unterstützt.
Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und navigieren Sie dann zu Ihrem Projekt.
Wählen Sie Artefakte und dann "Mit Feed verbinden" aus.
Wählen Sie npm aus der linken Randleiste aus. Wenn Sie azure Artifacts mit npm zum ersten Mal verwenden, stellen Sie sicher, dass Sie die erforderlichen Komponenten installiert haben.
Folgen Sie den Anweisungen im Abschnitt "Project-Setup ", um eine Verbindung mit Ihrem Feed herzustellen.
Fügen Sie eine NPMRC-Datei im Verzeichnis Ihres Projekts im selben Verzeichnis wie Ihre package.json-Datei hinzu, und fügen Sie den folgenden Codeausschnitt in das Verzeichnis ein.
Kopieren Sie den folgenden Codeausschnitt, und fügen Sie ihn in die npmrc-Datei auf Benutzerebene ein:
Feed mit Organisationsbereich:
; 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
Projektbezogener Feed:
; 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
Führen Sie den folgenden Befehl in einem Eingabeaufforderungsfenster aus, und fügen Sie dann Ihr persönliches Zugriffstoken ein, wenn Sie dazu aufgefordert werden. Kopieren Sie anschließend den generierten Base64-codierten Wert.
Wenn Sie Linux/Mac verwenden, können Sie alternativ den folgenden Befehl verwenden, um Ihr persönliches Zugriffstoken in Base 64 zu konvertieren. Kopieren Sie den resultierenden Base64-codierten Wert.
echo -n "YOUR_PERSONAL_ACCESS-TOKEN" | base64
Ersetzen Sie die Platzhalter [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] in Ihrer Npmrc-Datei des Benutzers durch das codierte persönliche Zugriffstoken, das aus dem vorherigen Schritt abgerufen wurde.
Melden Sie sich bei Ihrer Azure DevOps-Sammlung an, und navigieren Sie dann zu Ihrem Projekt.
Wählen Sie Artefakte und dann "Mit Feed verbinden" aus.
Wählen Sie npm aus der linken Randleiste aus, und folgen Sie dann den Anweisungen im Project-Setupabschnitt, um Ihre Konfigurationsdatei einzurichten.
Fügen Sie eine NPMRC-Datei im Verzeichnis Ihres Projekts im selben Verzeichnis wie Ihre package.json-Datei hinzu, und fügen Sie den folgenden Codeausschnitt in das Verzeichnis ein.
Kopieren Sie den folgenden Codeausschnitt, und fügen Sie ihn in ihre NPMRC-Datei auf Benutzerebene ein:
Sammlungsbereichsfeed:
; 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
Projektbezogener Feed:
; 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
Führen Sie den folgenden Befehl in einem Eingabeaufforderungsfenster aus, und fügen Sie dann Ihr persönliches Zugriffstoken ein, wenn Sie dazu aufgefordert werden. Kopieren Sie anschließend den generierten Base64-codierten Wert.
Ersetzen Sie die Platzhalter [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] in Ihrer Npmrc-Datei des Benutzers durch das codierte persönliche Zugriffstoken, das aus dem vorherigen Schritt abgerufen wurde.
Melden Sie sich bei Ihrer Azure DevOps-Sammlung an, und navigieren Sie dann zu Ihrem Projekt.
Wählen Sie Artefakte und dann "Mit Feed verbinden" aus.
Wählen Sie "npm" von links aus, und folgen Sie dann den Anweisungen im Project-Setup, um die Konfigurationsdatei einzurichten.
Fügen Sie eine NPMRC-Datei im Verzeichnis Ihres Projekts im selben Verzeichnis wie Ihre package.json-Datei hinzu, und fügen Sie den folgenden Codeausschnitt in das Verzeichnis ein:
Kopieren Sie den folgenden Codeausschnitt, und fügen Sie ihn in ihre NPMRC-Datei auf Benutzerebene ein:
Sammlungsbereichsfeed:
; 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
Projektbezogener Feed:
; 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
Führen Sie den folgenden Befehl in einem Eingabeaufforderungsfenster aus, und fügen Sie dann Ihr persönliches Zugriffstoken ein, wenn Sie dazu aufgefordert werden. Kopieren Sie anschließend den generierten Base64-codierten Wert.
Ersetzen Sie die Platzhalter [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] in Ihrer Npmrc-Datei des Benutzers durch das codierte persönliche Zugriffstoken, das aus dem vorherigen Schritt abgerufen wurde.
Melden Sie sich bei Ihrer Azure DevOps-Sammlung an, und navigieren Sie dann zu Ihrem Projekt.
Wählen Sie Artefakte und dann "Mit Feed verbinden" aus.
Ein neues Fenster wird angezeigt. Wählen Sie im linken Navigationsbereich npm aus.
Befolgen Sie die bereitgestellten Anweisungen, um Ihre Projekt - und Benutzer-NPMRC-Dateien zu konfigurieren.
Tipp
Die Verwendung mehrerer Registrierungen in NPMRC-Dateien wird mit Bereichen und Upstreamquellen unterstützt.
Pipelineauthentifizierung
Um sich bei Ihrer Pipeline zu authentifizieren, empfiehlt Azure Artifacts die Verwendung der npm-Authentifizierungsaufgabe.
Wenn Sie Aufgabenläufer wie gulp oder Grunt verwenden, müssen Sie die Festlegung Ihrer npm-Authentifizierungsaufgabe am Anfang Ihrer Pipeline priorisieren. Dieser Schritt garantiert, dass Ihre Anmeldeinformationen in die NPMRC-Datei Ihres Projekts eingefügt und während der gesamten Pipelineausführung aufbewahrt werden, sodass nachfolgende Schritte auf die Anmeldeinformationen in der Konfigurationsdatei zugreifen können.
Navigieren Sie zu Ihrem Projekt, wählen Sie "Pipelines" aus, und wählen Sie dann Ihre Pipelinedefinition aus.
Wählen Sie Bearbeiten aus, um Ihre Pipeline zu bearbeiten.
Wählen Sie diese Option + aus, um Ihrer Pipeline eine neue Aufgabe hinzuzufügen.
Navigieren Sie zu Ihrem Projekt, wählen Sie "Pipelines>Builds" aus, und wählen Sie dann Ihre Builddefinition aus.
Wählen Sie "Bearbeiten" aus, um Die Buildpipeline zu ändern.
Wählen Sie diese Option + aus, um Ihrer Buildpipeline eine neue Aufgabe hinzuzufügen.
Suchen Sie nach der npm-Authentifizierungsaufgabe, und wählen Sie dann "Hinzufügen" aus.
Wählen Sie Ihre NPMRC-Datei aus, und wählen Sie dann "Speichern und Warteschlange " aus, wenn Sie fertig sind.
- 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
Hinweis
Um von Ihrer Pipeline aus auf Ihren Feed zuzugreifen, stellen Sie sicher, dass die Builddienstrolle auf Feed und Upstream Reader (Mitwirkender) in den Feedeinstellungen>Berechtigungen festgelegt ist.
Hinweis
Wenn Ihre Organisation eine Firewall oder einen Proxyserver verwendet, stellen Sie sicher, dass Sie die entsprechenden Domänen-URLs zulassen. Details finden Sie unter Zulässige IP-Adressen und Domänen-URLs .
Problembehandlung
vsts-npm-auth wird nicht erkannt.
Dieser Fehler gibt an, dass der Ordner "npm modules" ihrem Pfad nicht hinzugefügt wurde. Führen Sie das Node.js Setup erneut aus, und stellen Sie sicher, dass Sie die Add to PATH Option auswählen. Alternativ können Sie den Ordner "npm modules" zu Ihrem Pfad hinzufügen, indem Sie die PATH-Variable %APPDATA%\npm in der Eingabeaufforderung oder $env:APPDATA\npm in PowerShell ändern.
Die Authentifizierung kann nicht ausgeführt werden.
Fehler: Code E401 npm ERR! Authentifizierung nicht möglich: -> Führen Sie den vsts-npm-auth Befehl mit -F-Flag aus, um die Authentifizierung erneut zu authentifizieren:
vsts-npm-auth -config .npmrc -F
Zurücksetzen der vsts-npm-auth
Führen Sie die folgenden Schritte aus, um Ihre vsts-npm-auth-Anmeldeinformationen zurückzusetzen:
Wenn ein 403-Fehler auftritt, kann ein Namenskonflikt angezeigt werden. In Azure Artifacts sind Pakete unveränderlich, d. h., nachdem Sie ein Paket in Ihrem Feed veröffentlicht haben, ist die Versionsnummer dauerhaft reserviert. Selbst wenn Sie es löschen, können Sie kein neues Paket mit derselben Versionsnummer veröffentlichen. Um dieses Problem zu beheben, aktualisieren Sie die Paketversion in Ihrer package.json-Datei , und versuchen Sie es dann erneut.