Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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?
- Kdy mám tuto úlohu spustit v kanálu?
- 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í
npmAuthenticatenpm/gulp/Gruntpoužívat můj proxy server? - Kanál potřebuje přístup k informačnímu kanálu v jiném projektu
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_proxya volitelněno_proxyna 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é nejsounpmná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é
npmspouš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
-
Obnovit balíčky
npmprojektu z registru v organizaci -
obnovení a publikování balíčků
npmmimo organizaci - npmrc
- npm
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 |