Verbinden Ihres npm-Projekts in Azure Artifacts-Feeds
Artikel
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Mit Azure Artifacts können Entwickler verschiedene Pakettypen aus Feeds und öffentlichen Registrierungen wie npmjs.com veröffentlichen und installieren. 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. Durch Ändern der NPMRC-Datei können Benutzer ihre npm-Erfahrung personalisieren, um ihre spezifischen Anforderungen zu erfüllen.
Voraussetzungen
Ein Azure DevOps-organization und ein Projekt. Erstellen Sie ein organization oder ein Projekt, falls noch nicht geschehen.
Für bewährte Methoden wird empfohlen, zwei separate Konfigurationsdateien zu verwenden. Der erste wird für die Authentifizierung mit Azure Artifacts verwendet, während der zweite lokal gespeichert wird und Ihre Anmeldeinformationen enthält.
Um die zweite Datei einzurichten, platzieren Sie sie einfach in Ihrem Startverzeichnis auf Ihrem Entwicklungscomputer, und schließen Sie alle Ihre Registrierungsanmeldeinformationen ein. Auf diese Weise kann der npm-Client problemlos auf Ihre Anmeldeinformationen für die Authentifizierung zugreifen, sodass Sie Ihre Konfigurationsdatei freigeben können, während Ihre Anmeldeinformationen sicher bleiben.
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 aus, und wählen Sie dann Verbinden aus, um zu feeden.
Wählen Sie npm aus dem linken Navigationsbereich aus.
Wenn Dies das erste Mal die Verwendung von Azure Artifacts mit npm ist, wählen Sie "Tools abrufen" aus, und folgen Sie den Anweisungen, um die erforderlichen Komponenten zu installieren.
Folgen Sie den Anweisungen im 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 kopieren Sie den folgenden Codeausschnitt in das Verzeichnis.
Kopieren Sie den folgenden Codeausschnitt in die npmrc-Datei auf Benutzerebene:
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
Codieren Sie Ihr neu generiertes persönliches Zugriffstoken wie folgt:
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:
Sie können auch den folgenden Befehl verwenden, um Ihr persönliches Zugriffstoken in Base 64 zu konvertieren.
Linux/Mac:
echo -n "YOUR_PERSONAL_ACCESS-TOKEN" | base64
Kopieren Sie den Base64-codierten Wert.
Ersetzen Sie beide [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] -Werte in Ihrer Npmrc-Datei des Benutzers durch Ihr persönliches Zugriffstoken aus Schritt 3.
Wählen Sie Ihre Sammlung aus, und navigieren Sie dann zu Ihrem Projekt.
Wählen Sie Artefakte aus, und wählen Sie dann Verbinden aus, um zu feeden.
Wählen Sie npm aus dem linken Navigationsbereich aus.
Wenn Dies das erste Mal die Verwendung von Azure Artifacts mit npm ist, wählen Sie "Tools abrufen" aus, und folgen Sie den Anweisungen, um die erforderlichen Komponenten zu installieren.
Befolgen Sie die Anweisungen im Project-Setup , um Ihre Konfigurationsdatei einzurichten.
Fügen Sie eine NPMRC-Datei im Verzeichnis Ihres Projekts im selben Verzeichnis wie Ihre package.json-Datei hinzu, und kopieren Sie den folgenden Codeausschnitt in das Verzeichnis.
Kopieren Sie den folgenden Codeausschnitt in die NPMRC-Datei auf Benutzerebene:
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
Codieren Sie Ihr neu generiertes persönliches Zugriffstoken wie folgt:
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:
Ersetzen Sie beide [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] -Werte in Ihrer Npmrc-Datei des Benutzers durch Ihr persönliches Zugriffstoken aus Schritt 3.
Wählen Sie Ihre Sammlung aus, und navigieren Sie dann zu Ihrem Projekt.
Wählen Sie Artefakte aus, und wählen Sie dann Verbinden aus, um zu feeden.
Wählen Sie npm aus dem linken Navigationsbereich aus.
Wenn Dies das erste Mal die Verwendung von Azure Artifacts mit npm ist, wählen Sie "Tools abrufen" aus, und folgen Sie den Anweisungen, um die erforderlichen Komponenten zu installieren.
Befolgen Sie die Anweisungen im Project-Setup , um Ihre Konfigurationsdatei einzurichten.
Fügen Sie eine NPMRC-Datei im Verzeichnis Ihres Projekts im selben Verzeichnis wie Ihre package.json-Datei hinzu, und kopieren Sie den folgenden Codeausschnitt in das Verzeichnis.
Kopieren Sie den folgenden Codeausschnitt in die NPMRC-Datei auf Benutzerebene:
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
Codieren Sie Ihr neu generiertes persönliches Zugriffstoken wie folgt:
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:
Ersetzen Sie beide [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] -Werte in Ihrer Npmrc-Datei des Benutzers durch Ihr persönliches Zugriffstoken aus Schritt 3.
Wählen Sie Ihre Sammlung aus, und navigieren Sie dann zu Ihrem Projekt.
Wählen Sie Artefakte aus, und wählen Sie dann Verbinden aus, um zu feeden.
Ein neues Fenster wird angezeigt. Wählen Sie im linken Navigationsbereich npm aus.
Befolgen Sie die 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.
Bei der Verwendung von Aufgabenläufern wie gulp oder Grunt ist es wichtig, Ihre npm-Authentifizierungsaufgabe am Anfang Ihrer Pipeline einzuschließen. Diese Aktion stellt sicher, 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
Damit Ihre Pipeline auf Ihren Feed zugreifen kann, stellen Sie sicher, dass die Builddienstrolle in Ihren Feedeinstellungen auf Feed und Upstream Reader (Mitwirkender) festgelegt ist.
Hinweis
Wenn Ihre Organisation eine Firewall oder einen Proxyserver verwendet, stellen Sie sicher, dass Sie die entsprechenden Aktionen zulassen Standard URLs. Weitere Informationen finden Sie unter zulässigen IP-Adressen und -URLs Standard.
Problembehandlung
vsts-npm-auth wird nicht erkannt.
Wenn während der Projektausführung der folgende Fehler auftritt:
Befehl: '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.
Dann ist es wahrscheinlich, dass der Ordner "npm modules" nicht zu Ihrem Pfad hinzugefügt wurde. Um dies zu beheben, 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.
Wenn ein E401-Fehler auftritt: code E401 npm ERR! Unable to authenticate. 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:
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter https://aka.ms/ContentUserFeedback.