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 npm
ověř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 npm
ověřování pomocí privátních registrů , stejně jako npm
u běžců úloh, jako jsou gulp a Grunt.
- Jak tento úkol funguje?
- Kdy mám v kanálu spustit tuto úlohu?
- Mám několik projektů npm. Musím tuto úlohu spustit pro každý soubor .npmrc?
- Můj agent je za webovým proxy serverem. Nastaví
npmAuthenticate
senpm/gulp/Grunt
tak, aby používal můj proxy server? - Kanál potřebuje přístup ke kanálu v jiném projektu
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 npm
nebo 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énpm
podporuje .Při volání
npm
zadejte 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 - Obnovení a publikování
npm
balíčků mimo vaši organizaci - npmrc
- npm
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 |