Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Azure Artifacts verwendet die NPMRC-Konfigurationsdatei zum Authentifizieren von npm-Clients mit Feeds. Das empfohlene Setup behält die Feedkonfiguration und Anmeldeinformationen in zwei separaten NPMRC-Dateien bei: eine Datei auf Projektebene (eingecheckt neben Ihrem package.json), die die Feed-URL speichert, und eine Datei auf Benutzerebene (nie zugesichert), die Ihre Anmeldeinformationen speichert.
Voraussetzungen
Verbindung zu einem Feed herstellen
Wählen Sie die Registerkarte aus, die Ihrem Betriebssystem entspricht, und führen Sie die Schritte aus, um Ihre NPMRC-Dateien zu konfigurieren:
Anmerkung
vsts-npm-auth wird in Azure DevOps Server nicht unterstützt.
Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und wechseln Sie dann zu Ihrem Projekt.
Wählen Sie Artefakte und dann Ihren Feed im Dropdownmenü aus.
Wählen Sie "Mit Feed verbinden" und dann "npm " im linken Navigationsbereich aus.
Falls Sie vsts-npm-auth nicht installiert haben, führen Sie den folgenden Befehl aus:
npm install -g vsts-npm-auth --registry https://registry.npmjs.com --always-auth false
Fügen Sie Ihrem Projekt im selben Verzeichnis wie Ihre package.json eine Datei .npmrc hinzu und kopieren Sie dann den Codeausschnitt aus dem Abschnitt Projekteinrichtung in die Datei.
Führen Sie den folgenden Befehl aus, um Ihrer NPMRC-Datei auf Benutzerebene ein Token hinzuzufügen. npm gibt einen Fehler vom Typ "401 Nicht autorisiert " zurück, wenn das Token abläuft. Führen Sie diesen Befehl erneut aus, um es zu aktualisieren.
vsts-npm-auth -config .npmrc
Melden Sie sich bei Ihrer Azure DevOps-Organisation an, und wechseln Sie dann zu Ihrem Projekt.
Wählen Sie Artefakte und dann Ihren Feed im Dropdownmenü aus.
Wählen Sie "Mit Feed verbinden" und dann "npm " im linken Navigationsbereich aus.
Fügen Sie Ihrem Projekt im selben Verzeichnis wie Ihre package.json eine Datei .npmrc hinzu und kopieren Sie dann den Codeausschnitt aus dem Abschnitt Projekteinrichtung in die Datei. Ihre Datei sollte etwa wie folgt aussehen:
registry=https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/
Anmeldeinformationen einrichten
Kopieren Sie das folgende Snippet und fügen Sie es in Ihre Benutzerebene ein npmrc Datei:
Organisationsspezifischer Feed:
; 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=[ENTER_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
Generieren Sie ein persönliches Zugriffstoken mit dem Packaging>-Bereich.
Kodieren Sie Ihren PAT mit Base64 mithilfe einer der folgenden Methoden:
Node.js (alle Plattformen): Führen Sie den folgenden Befehl aus, geben Sie Ihren PAT ein, wenn Sie dazu aufgefordert werden, und kopieren Sie den resultierenden Wert.
node -e "require('readline') .createInterface({input:process.stdin,output:process.stdout,historySize:0}) .question('PAT> ',p => { b64=Buffer.from(p.trim()).toString('base64');console.log(b64);process.exit(); })"
macOS oder Linux: Führen Sie den folgenden Befehl aus, und kopieren Sie die Ausgabe.
echo -n "YOUR_PERSONAL_ACCESS_TOKEN" | base64
Ersetzen Sie die [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]-Platzhalter in Ihrer Datei .npmrc auf Benutzer-Ebene durch den codierten Wert.
Melden Sie sich bei Ihrer Azure DevOps-Sammlung an, und wechseln Sie dann zu Ihrem Projekt.
Wählen Sie Artefakte aus, wählen Sie Ihren Feed aus dem Dropdownmenü und dann "Mit Feed verbinden" aus.
Wählen Sie npm aus, und führen Sie dann die Schritte im Abschnitt Project Setup aus, um Ihre NPMRC-Datei zu konfigurieren und sich bei Ihrem Feed zu authentifizieren.
Melden Sie sich bei Ihrer Azure DevOps-Sammlung an, und wechseln Sie dann zu Ihrem Projekt.
Wählen Sie Artefakte und dann Ihren Feed im Dropdownmenü aus.
Wählen Sie "Mit Feed verbinden" und dann "npm " im linken Navigationsbereich aus.
Fügen Sie Ihrem Projekt im selben Verzeichnis wie Ihre package.json eine Datei .npmrc hinzu und kopieren Sie dann den Codeausschnitt aus dem Abschnitt Projekteinrichtung in die Datei. Ihre Datei sollte etwa wie folgt aussehen:
registry=http://<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/
Anmeldeinformationen einrichten
Kopieren Sie das folgende Snippet und fügen Sie es in Ihre Benutzerebene ein .npmrc Datei:
Einspeisung in die Sammlung:
; 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
Generieren Sie ein persönliches Zugriffstoken mit dem Packaging>-Bereich.
Führen Sie den folgenden Befehl aus, geben Sie Ihren PAT ein, wenn Sie dazu aufgefordert werden, und kopieren Sie dann den resultierenden Base64-codierten Wert.
node -e "require('readline') .createInterface({input:process.stdin,output:process.stdout,historySize:0}) .question('PAT> ',p => { b64=Buffer.from(p.trim()).toString('base64');console.log(b64);process.exit(); })"
Ersetzen Sie die [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]-Platzhalter in Ihrer Datei .npmrc auf Benutzer-Ebene durch den codierten Wert.
Verwandte Inhalte