Sdílet prostřednictvím


npmAuthenticate@0 – úloha npm authenticate (pro spouštěče úloh) v0

Tuto úlohu použijte k poskytnutí npm přihlašovacích údajů k souboru .npmrc ve vašem úložišti pro rozsah sestavení. To umožňuje npma také npm spouštěče úkolů, jako jsou gulp a Grunt, k ověřování v privátních registrech.

Syntaxe

# 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.

Vstupy

workingFile - souboru .npmrc k ověření
string. Povinné.

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


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

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


Možnosti ovládání úloh

Všechny úlohy mají kromě vstupů také možnosti ovládání. Další informace naleznete v tématu Možnosti ovládacího prvku a běžné vlastnosti úloh.

Výstupní proměnné

Žádné.

Poznámky

Tuto úlohu použijte k poskytnutí npm přihlašovacích údajů k souboru .npmrc ve vašem úložišti pro rozsah sestavení. To umožňuje npma také npm spouštěče úkolů, jako jsou gulp a Grunt, k ověřování v privátních registrech.

Jak tento úkol funguje?

Tato úloha prohledá zadaný soubor .npmrc položky registru a pak připojí podrobnosti ověřování zjištěných registrů 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 hostovaných třetí stranou se identifikátory URI registru porovnávají s identifikátory URI připojení služby npm zadanými vstupem customEndpoint a použijí se odpovídající přihlašovací údaje. Soubor .npmrc se vrátí do původního stavu na konci spuštění kanálu.

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

Tato úloha se musí spustit před použitím npmnebo spouštěče úloh npm k 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á podrobnosti o ověřování pouze do jednoho .npmrc souboru najednou. Pokud potřebujete ověřování pro více .npmrc souborů, můžete úlohu spustit několikrát, jednou pro každý .npmrc soubor. Případně zvažte vytvoření souboru .npmrc, který určuje všechny registry používané vašimi projekty, spuštění npmAuthenticate v tomto souboru .npmrc a nastavení proměnné prostředí tak, aby tento .npmrc soubor určil jako konfigurační soubor npm pro jednotlivé 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í npmAuthenticatenpm/gulp/Grunt používat můj proxy server?

Odpověď je ne. I když samotná úloha bude fungovat za webovým proxy serverem je váš agent nakonfigurovaný tak, aby používal, nenakonfiguruje npm ani npm spouštěče úloh tak, aby používal proxy server.

Můžete to udělat takto:

  • Nastavte proměnné prostředí http_proxy/https_proxy a volitelně no_proxy na nastavení proxy serveru. Podrobnosti najdete v konfigurace npm. Všimněte si, že se běžně používají proměnné, které mohou používat i jiné nástroje, které nejsounpm nástroje (např. curl).

  • Přidejte nastavení proxy serveru do konfiguračního npm ručně pomocí konfigurační sady npmnebo nastavením proměnných prostředí předponou NPM_CONFIG_.

    Důležité

    npm spouštěče ú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 proxy server vyžaduje ověření, možná budete muset přidat další krok sestavení pro vytvoření ověřeného identifikátoru URI 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 k informačnímu 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 udělil službě sestavení přístup pro čtení a zápis. Další podrobnosti najdete v tématu Oprávnění balíčku ve službě Azure Pipelines.

Příklady

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

Pokud jsou jedinými ověřenými registry, které používáte, registry Azure Artifacts ve vaší organizaci, stačí zadat cestu k souboru .npmrc k úloze 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í balíčků npm mimo vaši organizaci

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

.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í projekt obsahovat. Adresa URL kanálu s vymezeným oborem projektu musí obsahovat projekt a adresa URL kanálu s oborem organizace nesmí obsahovat projekt. Přečtěte si další informace o informačních kanálech s vymezeným oborem projektu.

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 a ThirdPartyRepositoryNpmConnection jsou názvy připojení služby npm nakonfigurované a autorizované pro použití v kanálu a mají adresy URL, které odpovídají adresám URL v zadaném souboru .npmrc.

Požadavky

Požadavek Popis
Typy kanálů YAML, klasické sestavení, klasická verze
Běží na Agent, skupina nasazení
požadavky Žádný
možnosti Tento úkol nesplňuje žádné požadavky na následné úkoly v úloze.
omezení příkazů Jakýkoliv
nastavitelné proměnné Jakýkoliv
Verze agenta 2.115.0 nebo vyšší
Kategorie úkolu Balíček