Megosztás a következőn keresztül:


npmAuthenticate@0 – npm-hitelesítés (feladatfuttatók számára) v0 feladat

Ezzel a feladatával npm hitelesítő adatokat adhat meg egy .npmrc-fájlnak az adattárban a build hatóköréhez. Ez lehetővé teszi npm, valamint npm feladatfuttatók, például a Gulp és a Grunt számára, hogy privát regisztrációs adatbázisokkal hitelesítsék magukat.

Szinopszis

# npm authenticate (for task runners) v0
# Don't use this task if you're also using the npm task. Provides npm credentials to an .npmrc file in your repository for the scope of the build. This enables npm task runners like gulp and Grunt to authenticate with private registries.
- task: npmAuthenticate@0
  inputs:
    workingFile: # string. Required. .npmrc file to authenticate. 
    #customEndpoint: # string. Credentials for registries outside this organization/collection.

Bemenetek

workingFile - .npmrc-fájlt a hitelesítéséhez
string. Szükséges.

A használni kívánt adatbázisokat meghatározó .npmrc fájl elérési útja. Jelölje ki a fájlt, ne a mappát, például /packages/mypackage.npmrc.


customEndpoint - a szervezeten/gyűjteményen kívüli regisztrációs adatbázisok hitelesítő adatainak
string.

Az npm szolgáltatáskapcsolat vesszővel tagolt listája szervezeten vagy gyűjteményen kívüli regisztrációs adatbázisok neveit. A megadott .npmrc fájlnak tartalmaznia kell a szolgáltatáskapcsolatoknak megfelelő beállításjegyzék-bejegyzéseket. Ha csak a szervezetben vagy gyűjteményben lévő regisztrációs adatbázisokra van szüksége, hagyja üresen ezt a műveletet. A rendszer automatikusan használja a build hitelesítő adatait.


Feladatvezérlési lehetőségek

Minden feladathoz tartoznak vezérlési lehetőségek is a feladat bemenetei mellett. További információ: Vezérlők és gyakori feladattulajdonságok.

Kimeneti változók

Nincs.

Megjegyzések

Ezzel a feladatával npm hitelesítő adatokat adhat meg egy .npmrc-fájlnak az adattárban a build hatóköréhez. Ez lehetővé teszi npm, valamint npm feladatfuttatók, például a Gulp és a Grunt számára, hogy privát regisztrációs adatbázisokkal hitelesítsék magukat.

Hogyan működik ez a feladat?

Ez a feladat megkeresi a megadott .npmrc fájlban a beállításjegyzék bejegyzéseit, majd hozzáfűzi a felderített adatbázisok hitelesítési adatait a fájl végéhez. Az aktuális szervezet/gyűjtemény összes regisztrációs adatbázisa esetében a rendszer a build hitelesítő adatait használja. Egy másik szervezet vagy egy harmadik fél által üzemeltetett regisztrációs adatbázisok esetében a beállításjegyzék URI-jait a rendszer összehasonlítja az bemenet által megadott customEndpoint npm szolgáltatáskapcsolatok URI-jaival, és a megfelelő hitelesítő adatokat fogja használni. A .npmrc fájl a folyamat végrehajtásának végén visszaáll az eredeti állapotára.

Mikor futtassam ezt a feladatot a folyamatban?

Ennek a feladatnak futnia kell, mielőtt npmvagy npm feladatfuttatót használna a csomagok hitelesített npm-adattárba, például az Azure Artifactsbe való telepítéséhez vagy leküldéséhez. Nincsenek más rendezési követelmények.

Több npm-projektem van. Le kell futtatnom ezt a feladatot minden .npmrc-fájlhoz?

Ez a feladat egyszerre csak egy .npmrc fájlhoz ad hozzá hitelesítési adatokat. Ha több .npmrc fájl hitelesítésére van szüksége, a feladatot többször is futtathatja, minden .npmrc fájlhoz egyszer. Másik lehetőségként érdemes lehet létrehozni egy .npmrc fájlt, amely meghatározza a projektek által használt összes adatbázist, npmAuthenticate futtat ezen a .npmrc fájlon, majd beállít egy környezeti változót, hogy ezt a .npmrc fájlt a felhasználónkénti npm konfigurációs fájlként jelölje ki.

- task: npmAuthenticate@0
  inputs:
    workingFile: $(Agent.TempDirectory)/.npmrc

- script: echo "##vso[task.setvariable variable=NPM_CONFIG_USERCONFIG]$(Agent.TempDirectory)/.npmrc"

- script: npm ci
  workingDirectory: project1

- script: npm ci
  workingDirectory: project2

Az ügynököm egy webes proxy mögött áll. Beállítja npmAuthenticatenpm/gulp/Grunt a proxym használatára?

A válasz: nem. Bár ez a feladat egy webes proxy mögött fog működni, az ügynökhasználatára lett konfigurálva, nem konfigurálja npm vagy npm feladatfuttatókat a proxy használatára.

Ehhez a következőkre van lehetőség:

  • Állítsa be a környezeti változókat http_proxy/https_proxy, és opcionálisan no_proxy a proxybeállításokra. Részletekért lásd npm konfigurációs. Vegye figyelembe, hogy ezek gyakran használt változók, amelyeket más nemnpm eszközök (pl. curl) is használhatnak.

  • Adja hozzá a proxybeállításokat az npm konfigurációsmanuálisan, npm konfigurációkészlethasználatával, vagy környezeti változók beállításávalNPM_CONFIG_előtaggal.

    Fontos

    npm feladatfuttatók nem feltétlenül kompatibilisek a npmáltal támogatott proxykonfigurációs módszerekkel.

  • Adja meg a proxyt parancssori jelzővel npmhívásakor.

    - script: npm ci --https-proxy $(agent.proxyurl)
    

Ha a proxy hitelesítést igényel, előfordulhat, hogy egy hitelesített proxy URI létrehozásához további buildelési lépést kell hozzáadnia.

- script: node -e "let u = url.parse(`$(agent.proxyurl)`); u.auth = `$(agent.proxyusername):$(agent.proxypassword)`; console.log(`##vso[task.setvariable variable=proxyAuthUri;issecret=true]` + url.format(u))"
- script: npm publish --https-proxy $(proxyAuthUri)

A folyamatnak egy másik projektben lévő hírcsatornához kell hozzáférnie

Ha a folyamat más projektben fut, mint a hírcsatornát üzemeltető projekt, be kell állítania a másik projektet, hogy olvasási/írási hozzáférést biztosítson a buildszolgáltatáshoz. További részletekért tekintse meg csomagengedélyeket az Azure Pipelines.

Példák

A projekt npm csomagjainak visszaállítása a szervezeten belüli beállításjegyzékből

Ha csak az Azure Artifacts-adatbázisokat használja a szervezetében, csak meg kell adnia egy .npmrc fájl elérési útját a npmAuthenticate feladathoz.

.npmrc

registry=https://pkgs.dev.azure.com/{organization}/_packaging/{feed}/npm/registry/
always-auth=true

npm

- task: npmAuthenticate@0
  inputs:
    workingFile: .npmrc
- script: npm ci

- script: npm publish

npm csomagok visszaállítása és közzététele a szervezeten kívül

Ha a .npmrc egy másik szervezetTől származó Azure Artifacts-adatbázisokat tartalmaz, vagy külső hitelesítésű csomagadattárat használ, be kell állítania npm szolgáltatáskapcsolatokat, és meg kell adnia őket a customEndpoint bemenetben. A rendszer automatikusan hitelesíti az Azure Artifacts-szervezeten belüli regisztrációs adatbázisokat is.

.npmrc

registry=https://pkgs.dev.azure.com/{organization}/{project}/_packaging/{feed}/npm/registry/
@{scope}:registry=https://pkgs.dev.azure.com/{otherorganization}/_packaging/{feed}/npm/registry/
@{otherscope}:registry=https://{thirdPartyRepository}/npm/registry/
always-auth=true

Az Azure Artifacts-hírcsatornára mutató beállításjegyzék URL-címe tartalmazhatja a projektet, vagy nem. A projekt hatókörébe tartozó hírcsatornák URL-címének tartalmaznia kell a projektet, a szervezeti hatókörű hírcsatornák URL-címe pedig nem tartalmazhatja a projektet. További információ projekthatókörű hírcsatornákról.

npm

- task: npmAuthenticate@0
  inputs:
    workingFile: .npmrc
    customEndpoint: OtherOrganizationNpmConnection, ThirdPartyRepositoryNpmConnection # Name of your service connection
- script: npm ci

- script: npm publish -registry https://pkgs.dev.azure.com/{otherorganization}/_packaging/{feed}/npm/registry/

OtherOrganizationNpmConnection és ThirdPartyRepositoryNpmConnectionnpm-szolgáltatáskapcsolatok nevei,, amelyek konfigurálva vannak és engedélyezve vannak a folyamatban való használatra, valamint a megadott .npmrc fájlban szereplő URL-címek.

Követelmények

Követelmény Leírás
Folyamattípusok YAML, klasszikus build, klasszikus kiadás
Futtatás bekapcsolva Ügynök, DeploymentGroup
Követelmények Egyik sem
képességek Ez a tevékenység nem felel meg a feladat későbbi tevékenységeire vonatkozó követelményeknek.
parancskorlátozások Bármely
Változók beállítása Bármely
Ügynök verziója 2.115.0 vagy újabb
Tevékenységkategória Csomag