Az npm-projekt csatlakoztatása az Azure Artifactshez
Cikk
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Az Azure Artifacts lehetővé teszi a fejlesztők számára, hogy csomagjaikat különböző forrásokból kezeljék, beleértve a nyilvános adatbázisokat, például a npmjs.com és a privát hírcsatornákat is. Az Azure Artifacts használatával történő hitelesítéshez konfigurálnia kell az npm konfigurációs fájlját. Ez a fájl tartalmazza az npm által használt hírcsatorna URL-címeit és hitelesítő adatait, és olyan beállításokat kínál, amelyekkel testre szabhatja az npm-ügyfél viselkedését, például proxykat állíthat be, alapértelmezett csomaghelyeket definiálhat, vagy privát csomagcsatornákat konfigurálhat. Az .npmrc fájl általában a felhasználó kezdőlapján található, de a projekt szintjén is létrehozható az alapértelmezett beállítások felülbírálásához.
Az Azure Artifacts két külön konfigurációs fájl használatát javasolja. Az első az Azure Artifacts hitelesítésére van kiállítva, a másodikat pedig helyben kell tárolni a hitelesítő adatok tárolásához. Ez a módszer lehetővé teszi a konfigurációs fájl megosztását a hitelesítő adatok védelme mellett.
A második fájl beállításához egyszerűen helyezze a kezdőkönyvtárba a fejlesztőgépen, és adja meg az összes beállításjegyzékbeli hitelesítő adatait. Ez lehetővé teszi, hogy az npm-ügyfél könnyen hozzáférjen a hitelesítő adataihoz hitelesítés céljából.
Az alábbi lépések végigvezetik az első konfigurációs fájl beállításán:
Feljegyzés
vsts-npm-auth az Azure DevOps Server nem támogatja.
Jelentkezzen be az Azure DevOps-szervezetbe, és lépjen a projekthez.
Válassza az Összetevők lehetőséget, majd válassza a Csatlakozás a hírcsatornához lehetőséget.
Válassza az npm lehetőséget a bal oldali oldalsávon. Ha először használja az Azure Artifactst npm-lel, győződjön meg arról, hogy telepítette az előfeltételeket.
A hírcsatornához való csatlakozáshoz kövesse a Project beállítási szakaszának utasításait.
Vegyen fel egy .npmrc fájlt a projekt könyvtárába, ugyanabban a könyvtárban, mint a package.json fájl, és illessze be a következő kódrészletet.
Másolja ki a következő kódrészletet, és illessze be a felhasználói szintű npmrc-fájlba :
Szervezeti hatókörű hírcsatorna:
; 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
Projekt hatókörű hírcsatorna:
; 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
Személyes hozzáférési jogkivonat létrehozása olvasási és írási hatókörök csomagolásával.
Futtassa a következő parancsot egy parancssori ablakban, majd illessze be a személyes hozzáférési jogkivonatot, amikor a rendszer kéri. Miután elkészült, másolja ki a létrehozott Base 64 kódolt értéket.
Ha Linuxon/Macen dolgozik, az alábbi paranccsal konvertálhatja személyes hozzáférési jogkivonatát Base 64-re. Másolja ki az eredményként kapott Base64 kódolt értéket.
echo -n "YOUR_PERSONAL_ACCESS-TOKEN" | base64
Cserélje le a felhasználói .npmrc fájlban található helyőrzőket [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] az előző lépésben beszerzett kódolt személyes hozzáférési jogkivonatra.
Másolja ki a következő kódrészletet, és illessze be a felhasználói szintű .npmrc fájlba:
Gyűjtemény hatókörű hírcsatorna:
; 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
Projekt hatókörű hírcsatorna:
; 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
Személyes hozzáférési jogkivonat létrehozása olvasási és írási hatókörök csomagolásával.
Futtassa a következő parancsot egy parancssori ablakban, majd illessze be a személyes hozzáférési jogkivonatot, amikor a rendszer kéri. Miután elkészült, másolja ki a létrehozott Base 64 kódolt értéket.
Cserélje le a felhasználói .npmrc fájlban található helyőrzőket [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] az előző lépésben beszerzett kódolt személyes hozzáférési jogkivonatra.
Másolja ki a következő kódrészletet, és illessze be a felhasználói szintű .npmrc fájlba:
Gyűjtemény hatókörű hírcsatorna:
; 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
Projekt hatókörű hírcsatorna:
; 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
Személyes hozzáférési jogkivonat létrehozása olvasási és írási hatókörök csomagolásával.
Futtassa a következő parancsot egy parancssori ablakban, majd illessze be a személyes hozzáférési jogkivonatot, amikor a rendszer kéri. Miután elkészült, másolja ki a létrehozott Base 64 kódolt értéket.
Cserélje le a felhasználói .npmrc fájlban található helyőrzőket [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] az előző lépésben beszerzett kódolt személyes hozzáférési jogkivonatra.
Jelentkezzen be az Azure DevOps-gyűjteménybe, és lépjen a projekthez.
Válassza az Összetevők lehetőséget, majd válassza a Csatlakozás a hírcsatornához lehetőséget.
Megjelenik egy új ablak. A bal oldali navigációs panelen válassza az npm lehetőséget.
Kövesse a megadott utasításokat a projekt és a felhasználó .npmrc fájljainak konfigurálásához.
A folyamattal való hitelesítéshez az Azure Artifacts az npm hitelesítési feladat használatát javasolja.
Ha olyan feladatfuttatókat használ, mint a gulp vagy a Grunt, az npm-hitelesítés feladatának beállítását kell rangsorolni a folyamat elején. Ez a lépés garantálja, hogy a hitelesítő adatok a projekt .npmrc fájljába lesznek injektálva, és a folyamatfuttatás során megmaradnak, így a konfigurációs fájlban lévő hitelesítő adatokhoz további lépések is hozzáférhetnek.
Lépjen a projekthez, válassza a Folyamatok lehetőséget, majd válassza ki a folyamatdefiníciót.
A folyamat módosításához válassza a Szerkesztés lehetőséget.
Válassza ki + , ha új feladatot szeretne hozzáadni a folyamathoz.
Lépjen a projekthez, válassza a Pipelines Builds> elemet, majd válassza ki a builddefiníciót.
Válassza a Szerkesztés lehetőséget a buildelési folyamat módosításához.
Válassza ki + , ha új feladatot szeretne hozzáadni a buildelési folyamathoz.
Keresse meg az npm-hitelesítési feladatot, majd válassza a Hozzáadás lehetőséget.
Válassza ki az .npmrc fájlt, majd amikor végzett, válassza a Mentés > üzenetsor lehetőséget.
- 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
Feljegyzés
Ha a folyamatból szeretné elérni a hírcsatornát, győződjön meg arról, hogy a buildszolgáltatás szerepköre be van állítva a Hírcsatorna beállításainak>engedélyeiben a Hírcsatorna és a Felsőbb réteg olvasója (Közreműködő) értékre.
Feljegyzés
Ha a szervezet tűzfalat vagy proxykiszolgálót használ, győződjön meg arról, hogy engedélyezi a megfelelő tartományi URL-címeket. Részletekért lásd: Engedélyezett IP-címek és tartomány URL-címek .
Hibaelhárítás
a vsts-npm-auth nem ismerhető fel
Ez a hiba azt jelzi, hogy az npm-modulok mappája nem lett hozzáadva az elérési úthoz. Futtassa újra a Node.js beállítást, és győződjön meg arról, hogy a beállítást választja Add to PATH . Másik lehetőségként hozzáadhatja az npm-modulok mappát az elérési úthoz úgy, hogy %APPDATA%\npm a PATH változót a parancssorban vagy $env:APPDATA\npm a PowerShellben módosítja.
Nem lehet hitelesíteni
Hiba: kód: E401 npm ERR! Nem lehet hitelesíteni: –> Futtassa a parancsot -vsts-npm-authF jelölővel az újrahitelesítéshez:
vsts-npm-auth -config .npmrc -F
A vsts-npm-auth alaphelyzetbe állítása
A vsts-npm-auth hitelesítő adatainak alaphelyzetbe állításához kövesse az alábbi lépéseket:
Ha 403-at tapasztal, az névütközést jelezhet. Az Azure Artifactsben a csomagok nem módosíthatók, ami azt jelenti, hogy miután közzétett egy csomagot a hírcsatornában, annak verziószáma véglegesen fenntartott lesz. Még ha törli is, nem tehet közzé új csomagot ugyanazzal a verziószámmal. A probléma megoldásához frissítse a csomag verzióját a package.json fájlban, majd próbálkozzon újra.