Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Med Azure Artifacts kan utvecklare hantera sina paket från olika källor, inklusive både offentliga register som npmjs.com och privata feeds. Om du vill autentisera med Azure Artifacts måste du konfigurera konfigurationsfilen npm. Den här filen innehåller feed-URL:er och autentiseringsuppgifter som används av npm och erbjuder alternativ för att anpassa npm-klientbeteendet, till exempel konfigurera proxyservrar, definiera standardpaketplatser eller konfigurera privata paketfeeds. .npmrc-filen finns vanligtvis i användarens hemkatalog men kan också skapas på projektnivå för att åsidosätta standardinställningarna.
Azure Artifacts rekommenderar att du använder två separata konfigurationsfiler. Den första är dedikerad till att autentisera med Azure Artifacts, medan den andra ska sparas lokalt för att lagra dina autentiseringsuppgifter. Med den här metoden kan du dela konfigurationsfilen samtidigt som du håller dina autentiseringsuppgifter säkra.
Om du vill konfigurera den andra filen placerar du den i din hemkatalog på utvecklingsdatorn och inkluderar alla dina registerautentiseringsuppgifter. På så sätt kan npm-klienten enkelt komma åt dina autentiseringsuppgifter för autentisering.
Följande steg vägleder dig genom att konfigurera den första konfigurationsfilen:
Logga in på din Azure DevOps-organisation och navigera sedan till projektet.
Välj Artefakter och välj sedan Anslut till feed.
Välj npm i det vänstra sidofältet. Om det är första gången du använder Azure Artifacts med npm kontrollerar du att du har installerat förutsättningarna.
Följ anvisningarna i avsnittet Project setup (Projektkonfiguration) för att ansluta till feeden.
Lägg till en .npmrc-fil i projektets katalog i samma katalog som din package.json-fil och klistra in följande kodfragment i den.
Kopiera följande kodfragment och klistra in det i npmrc-filen på användarnivå:
Flöde med organisationsomfattning:
; 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
Flöde med projektomfattning:
; 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
Kör följande kommando i ett kommandotolkfönster och klistra sedan in din personliga åtkomsttoken när du uppmanas att göra det. När du är klar kopierar du det genererade Base 64-kodade värdet.
Om du använder Linux/Mac kan du också använda följande kommando för att konvertera din personliga åtkomsttoken till Base 64. Kopiera det resulterande Base64-kodade värdet.
echo -n "YOUR_PERSONAL_ACCESS-TOKEN" | base64
Ersätt platshållarna [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] i användarens .npmrc-fil med den kodade personliga åtkomsttoken som hämtades från föregående steg.
Kopiera följande kodfragment och klistra in det i .npmrc-filen på användarnivå:
Flöde med samlingsomfång:
; 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
Flöde med projektomfattning:
; 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
Kör följande kommando i ett kommandotolkfönster och klistra sedan in din personliga åtkomsttoken när du uppmanas att göra det. När du är klar kopierar du det genererade Base 64-kodade värdet.
Ersätt platshållarna [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] i användarens .npmrc-fil med den kodade personliga åtkomsttoken som hämtades från föregående steg.
Kopiera följande kodfragment och klistra in det i .npmrc-filen på användarnivå:
Flöde med samlingsomfång:
; 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
Flöde med projektomfattning:
; 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
Kör följande kommando i ett kommandotolkfönster och klistra sedan in din personliga åtkomsttoken när du uppmanas att göra det. När du är klar kopierar du det genererade Base 64-kodade värdet.
Ersätt platshållarna [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] i användarens .npmrc-fil med den kodade personliga åtkomsttoken som hämtades från föregående steg.
Logga in på din Azure DevOps-samling och navigera sedan till projektet.
Välj Artefakter och välj sedan Anslut för att mata.
Ett nytt fönster öppnas. I det vänstra navigeringsfönstret väljer du npm.
Följ de angivna anvisningarna för att konfigurera projektet och användarens .npmrc-filer.
För att autentisera med din pipeline rekommenderar Azure Artifacts att du använder npm-autentisera uppgiften.
När du använder aktivitetslöpare som gulp eller Grunt är det att prioritera inställningen av npm-autentisera uppgiften i början av pipelinen. Det här steget garanterar att dina autentiseringsuppgifter matas in i projektets .npmrc-fil och behålls under hela pipelinekörningen, vilket gör det möjligt för efterföljande steg att komma åt autentiseringsuppgifterna i konfigurationsfilen.
Gå till projektet, välj Pipelines och välj sedan din pipelinedefinition.
Välj Redigera för att ändra pipelinen.
Välj + för att lägga till en ny uppgift i pipelinen.
Gå till projektet, välj Pipelines Builds> och välj sedan din byggdefinition.
Välj Redigera för att ändra bygg-pipelinen.
Välj + för att lägga till en ny uppgift i bygg-pipelinen.
Sök efter npm Authenticate-uppgiften och välj sedan Lägg till.
Välj .npmrc-filen och välj sedan Spara & kö när du är klar.
- 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
Kommentar
Om du vill komma åt ditt flöde från pipelinen kontrollerar du att byggtjänstrollen är inställd på Feed And Upstream Reader (Deltagare) i dina feedinställningar>Behörigheter.
Det här felet anger att mappen npm-moduler inte har lagts till i sökvägen. Kör konfigurationen av Node.js igen och välj sedan alternativet Add to PATH . Du kan också lägga till mappen npm-moduler i sökvägen genom att ändra PATH-variabeln till %APPDATA%\npm i Kommandotolken eller $env:APPDATA\npm i PowerShell.
Det gick inte att autentisera
Fel: kod E401 npm ERR! Det går inte att autentiseravsts-npm-auth: –> Kör kommandot med flaggan -F för att autentisera igen:
vsts-npm-auth -config .npmrc -F
Återställ vsts-npm-auth
Följ dessa steg för att återställa dina vsts-npm-auth-autentiseringsuppgifter:
Om du stöter på ett 403-fel kan det tyda på en namnkonflikt. I Azure Artifacts är paket oföränderliga, vilket innebär att versionsnumret är permanent reserverat när du publicerar ett paket i flödet. Även om du tar bort det kan du inte publicera ett nytt paket med samma versionsnummer. Åtgärda problemet genom att uppdatera paketversionen i din package.json-fil och sedan försöka igen.