Sdílet prostřednictvím


npmAuthenticate@0 – ověření npm (pro uživatele runnerů úloh) v0

Tuto úlohu použijte k zadání npm přihlašovacích údajů k .npmrc souboru v úložišti pro obor sestavení. To umožňuje npmověřování pomocí privátních registrů , stejně jako npm u běžců úloh, jako jsou gulp a Grunt.

Syntax

# 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.
# 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. .npmrc file to authenticate. 
    #customEndpoint: # string. Credentials for registries outside this account/collection.

Vstupy

workingFile - Soubor .npmrc k ověření
string. Povinná hodnota.

Cesta k .npmrc souboru určující registry, se kterými chcete pracovat. Vyberte soubor, ne složku, například /packages/mypackage.npmrc.


workingFile - Soubor .npmrc k ověření
string.

Cesta k .npmrc souboru určující registry, se kterými chcete pracovat. Vyberte soubor, ne složku, například /packages/mypackage.npmrc.


customEndpoint - Přihlašovací údaje pro registry mimo tuto organizaci nebo kolekci
string.

Čárkami oddělený seznam názvů připojení služby npm pro registry mimo tuto organizaci nebo kolekci. Zadaný .npmrc soubor musí obsahovat položky registru odpovídající připojení služby. Pokud potřebujete jenom registry v této organizaci nebo kolekci, nechte toto pole prázdné. Přihlašovací údaje sestavení se použijí automaticky.


customEndpoint - Přihlašovací údaje pro registry mimo tento účet nebo kolekci
string.

Čárkami oddělený seznam názvů připojení služby npm pro registry mimo tuto organizaci nebo kolekci. Zadaný .npmrc soubor musí obsahovat položky registru odpovídající připojení služby. Pokud potřebujete jenom registry v této organizaci nebo kolekci, nechte toto pole prázdné. Přihlašovací údaje sestavení se použijí automaticky.


Možnosti řízení úkolů

Všechny úkoly mají kromě vstupů úkolů i možnosti řízení. Další informace najdete v tématu Možnosti ovládacích prvků a běžné vlastnosti úlohy.

Výstupní proměnné

Žádné

Poznámky

Tuto úlohu použijte k zadání npm přihlašovacích údajů k .npmrc souboru v úložišti pro obor sestavení. To umožňuje npmověřování pomocí privátních registrů , stejně jako npm u běžců úloh, jako jsou gulp a Grunt.

Jak tento úkol funguje?

Tato úloha vyhledá v zadaném .npmrc souboru položky registru a pak připojí ověřovací podrobnosti pro zjištěné registry na konec souboru. Pro všechny registry v aktuální organizaci nebo kolekci se použijí přihlašovací údaje sestavení. U registrů v jiné organizaci nebo u registrů hostovaných třetí stranou se budou identifikátory URI registru porovnávat s identifikátory URI připojení služby npm určenými vstupem customEndpoint a použijí se odpovídající přihlašovací údaje. Soubor .npmrc se na konci spuštění kanálu vrátí do původního stavu.

Kdy mám v kanálu spustit tuto úlohu?

Tato úloha se musí spustit předtím, než použijete npmnebo použijete npm nástroj pro instalaci nebo nabízení balíčků do ověřeného úložiště npm, jako je Azure Artifacts. Neexistují žádné další požadavky na řazení.

Mám několik projektů npm. Musím tuto úlohu spustit pro každý soubor .npmrc?

Tato úloha přidá ověřovací podrobnosti jenom do jednoho .npmrc souboru. Pokud potřebujete ověření pro více .npmrc souborů, můžete úlohu spustit několikrát, jednou pro každý .npmrc soubor. Případně zvažte vytvoření .npmrc souboru, který určuje všechny registry používané projekty, spuštěné npmAuthenticate v tomto .npmrc souboru a nastavení proměnné prostředí, která tento .npmrc soubor označí jako konfigurační soubor npm pro uživatele.

- 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

Můj agent je za webovým proxy serverem. Nastaví npmAuthenticate se npm/gulp/Grunt tak, aby používal můj proxy server?

Odpověď je Ne. I když tato úloha samotná bude fungovat za webovým proxy serverem, na který byl váš agent nakonfigurovaný, nenakonfiguruje ani npm nekonfigurujenpm, aby ho používali.

Provedete to takto:

  • Nastavte proměnné http_proxy/https_proxy prostředí a volitelně no_proxy na nastavení proxy serveru. Podrobnosti najdete v konfiguraci npm . Všimněte si, že se jedná o běžně používané proměnné, které můžou používat i jiné jiné nástrojenpm (např. curl).

  • Přidejte nastavení proxy serveru do konfigurace npm, a to buď ručně, pomocí konfigurační sady npm, nebo nastavením proměnných prostředí s předponou NPM_CONFIG_.

    Pozor:
    npm spuštění úloh nemusí být kompatibilní se všemi metodami konfigurace proxy serveru, které npmpodporuje .

  • Při volání npmzadejte proxy server s příznakem příkazového řádku.

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

Pokud váš proxy server vyžaduje ověření, možná budete muset přidat další krok sestavení, abyste vytvořili identifikátor URI ověřeného proxy serveru.

- 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)

Kanál potřebuje přístup ke kanálu v jiném projektu

Pokud kanál běží v jiném projektu, než je projekt, který je hostitelem informačního kanálu, musíte nastavit druhý projekt tak, aby službě sestavení udělil přístup pro čtení a zápis. Další podrobnosti najdete v tématu Oprávnění balíčků ve službě Azure Pipelines .

Příklady

Obnovení npm balíčků pro projekt z registru ve vaší organizaci

Pokud jediné ověřené registry, které používáte, jsou registry Azure Artifacts ve vaší organizaci, stačí zadat cestu k .npmrc souboru úlohy npmAuthenticate .

.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

Obnovení a publikování npm balíčků mimo vaši organizaci

Pokud obsahuje .npmrc registry Azure Artifacts z jiné organizace nebo používáte úložiště balíčků ověřených třetí stranou, budete muset nastavit připojení služby npm a zadat je ve customEndpoint vstupu. Registry v rámci vaší organizace Azure Artifacts se také budou automaticky ověřovat.

.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

Adresa URL registru odkazující na informační kanál Azure Artifacts může nebo nemusí obsahovat projekt. Adresa URL informačního kanálu s oborem projektu musí obsahovat projekt a adresa URL informačního kanálu s oborem organizace nesmí obsahovat projekt. Přečtěte si další informace o informačních kanálech s vymezeným projektem.

npm

- task: npmAuthenticate@0
  inputs:
    workingFile: .npmrc
    customEndpoint: OtherOrganizationNpmConnection, ThirdPartyRepositoryNpmConnection
- script: npm ci
# ...
- script: npm publish -registry https://pkgs.dev.azure.com/{otherorganization}/_packaging/{feed}/npm/registry/

OtherOrganizationNpmConnection a ThirdPartyRepositoryNpmConnection jsou názvy připojení služby npm , která byla nakonfigurována a autorizována pro použití ve vašem kanálu, a mají adresy URL, které odpovídají adresám v zadaném .npmrc souboru.

Požadavky

Požadavek Popis
Typy kanálů YAML, klasický build, klasická verze
Běží na Agent, DeploymentGroup
Požadavky Žádné
Možnosti Tento úkol nesplňuje žádné požadavky na následné úkoly v úloze.
Omezení příkazů Všechny
Nastavitelné proměnné Všechny
Verze agenta 2.115.0 nebo vyšší
Kategorie úloh Balíček