npmAuthenticate@0 – npm authenticate (für Aufgabenrunner) v0 Task
Verwenden Sie diese Aufgabe, um Anmeldeinformationen für eine .npmrc
Datei in Ihrem Repository für den Bereich des Builds anzugebennpm
. Dies ermöglicht npm
es , sowie npm
Aufgabenrunnern wie gulp und Grunt, sich bei privaten Registrierungen zu authentifizieren.
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.
Eingaben
workingFile
- NPMRC-Datei zur Authentifizierung
string
. Erforderlich.
Der Pfad zu der .npmrc
Datei, die die Registrierungen angibt, mit denen Sie arbeiten möchten. Wählen Sie die Datei und nicht den Ordner aus, z /packages/mypackage.npmrc
. B. .
workingFile
- NPMRC-Datei zur Authentifizierung
string
.
Der Pfad zu der .npmrc
Datei, die die Registrierungen angibt, mit denen Sie arbeiten möchten. Wählen Sie die Datei und nicht den Ordner aus, z /packages/mypackage.npmrc
. B. .
customEndpoint
- Anmeldeinformationen für Registrierungen außerhalb dieser Organisation/Sammlung
string
.
Die durch Trennzeichen getrennte Liste der Npm-Dienstverbindungsnamen für Registrierungen außerhalb dieser Organisation oder Sammlung. Die angegebene .npmrc
Datei muss Registrierungseinträge enthalten, die den Dienstverbindungen entsprechen. Wenn Sie nur Registrierungen in dieser Organisation oder Sammlung benötigen, lassen Sie diese leer. Die Anmeldeinformationen des Builds werden automatisch verwendet.
customEndpoint
- Anmeldeinformationen für Registrierungen außerhalb dieses Kontos/dieser Sammlung
string
.
Die durch Trennzeichen getrennte Liste der Npm-Dienstverbindungsnamen für Registrierungen außerhalb dieser Organisation oder Sammlung. Die angegebene .npmrc
Datei muss Registrierungseinträge enthalten, die den Dienstverbindungen entsprechen. Wenn Sie nur Registrierungen in dieser Organisation oder Sammlung benötigen, lassen Sie diese leer. Die Anmeldeinformationen des Builds werden automatisch verwendet.
Aufgabensteuerungsoptionen
Alle Aufgaben verfügen zusätzlich zu ihren Aufgabeneingaben über Steuerungsoptionen. Weitere Informationen finden Sie unter Steuerungsoptionen und allgemeine Aufgabeneigenschaften.
Ausgabevariablen
Keine.
Bemerkungen
Verwenden Sie diese Aufgabe, um Anmeldeinformationen für eine .npmrc
Datei in Ihrem Repository für den Bereich des Builds anzugebennpm
. Dies ermöglicht npm
es , sowie npm
Aufgabenrunnern wie gulp und Grunt, sich bei privaten Registrierungen zu authentifizieren.
- Wie funktioniert diese Aufgabe?
- Wann sollte ich diese Aufgabe in meiner Pipeline ausführen?
- Ich habe mehrere npm-Projekte. Muss ich diese Aufgabe für jede NPMRC-Datei ausführen?
- Mein Agent befindet sich hinter einem Webproxy. Wird
npmAuthenticate
die Verwendung meines Proxys eingerichtetnpm/gulp/Grunt
? - Meine Pipeline muss auf einen Feed in einem anderen Projekt zugreifen.
Wie funktioniert diese Aufgabe?
Diese Aufgabe durchsucht die angegebene .npmrc
Datei nach Registrierungseinträgen und fügt dann Authentifizierungsdetails für die ermittelten Registrierungen am Ende der Datei an. Für alle Registrierungen in der aktuellen Organisation/Sammlung werden die Anmeldeinformationen des Builds verwendet. Bei Registrierungen in einer anderen Organisation oder gehostet von einem Drittanbieter werden die Registrierungs-URIs mit den URIs der npm-Dienstverbindungen verglichen, die durch die customEndpoint
Eingabe angegeben werden, und die entsprechenden Anmeldeinformationen werden verwendet. Die .npmrc
Datei wird am Ende der Pipelineausführung in ihren ursprünglichen Zustand zurückgesetzt.
Wann sollte ich diese Aufgabe in meiner Pipeline ausführen?
Diese Aufgabe muss ausgeführt werden, bevor Sie oder einen npm
Task-Runner zum Installieren oder Pushen von Paketen in ein authentifizierte npm-Repository wie Azure Artifacts verwendennpm
. Es gibt keine weiteren Bestellanforderungen.
Ich habe mehrere npm-Projekte. Muss ich diese Aufgabe für jede NPMRC-Datei ausführen?
Diese Aufgabe fügt jeweils nur einer .npmrc
Datei Authentifizierungsdetails hinzu. Wenn Sie eine Authentifizierung für mehrere .npmrc
Dateien benötigen, können Sie die Aufgabe mehrmals ausführen, einmal für jede .npmrc
Datei. Alternativ können Sie eine .npmrc
Datei erstellen, die alle von Ihren Projekten verwendeten Registrierungen angibt, die für diese .npmrc
Datei ausgeführt werdennpmAuthenticate
, und dann eine Umgebungsvariable festlegen, um diese .npmrc
Datei als npm-Pro-Benutzer-Konfigurationsdatei festzulegen.
- 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
Mein Agent befindet sich hinter einem Webproxy. Wird npmAuthenticate
die Verwendung meines Proxys eingerichtet npm/gulp/Grunt
?
Nein, das ist nicht möglich. Diese Aufgabe selbst funktioniert zwar hinter einem Webproxy, für den Ihr Agent konfiguriert wurde, aber es werden keine Aufgabenrunner für npm
die Verwendung des Proxys konfiguriertnpm
.
Dazu haben Sie die folgenden Möglichkeiten:
Legen Sie die Umgebungsvariablen
http_proxy
https_proxy
/und optionalno_proxy
auf Ihre Proxyeinstellungen fest. Weitere Informationen finden Sie unter npm-Konfiguration . Beachten Sie, dass dies häufig verwendete Variablen sind, die auch von anderen Nichttoolsnpm
(z. B. curl) verwendet werden können.Fügen Sie die Proxyeinstellungen der npm-Konfiguration entweder manuell mithilfe des npm-Konfigurationssatzes oder durch Festlegen von Umgebungsvariablen mit
NPM_CONFIG_
dem Präfix hinzu.Vorsicht:
npm
Task-Runner sind möglicherweise nicht mit allen Methoden der Proxykonfiguration kompatibel, die von unterstützt werdennpm
.Geben Sie den Proxy mit einem Befehlszeilenflag an, wenn Sie aufrufen
npm
.- script: npm ci --https-proxy $(agent.proxyurl)
Wenn Ihr Proxy eine Authentifizierung erfordert, müssen Sie möglicherweise einen zusätzlichen Buildschritt hinzufügen, um einen authentifizierten Proxy-URI zu erstellen.
- 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)
Meine Pipeline muss auf einen Feed in einem anderen Projekt zugreifen.
Wenn die Pipeline in einem anderen Projekt als dem Projekt ausgeführt wird, das den Feed hostet, müssen Sie das andere Projekt einrichten, um Lese-/Schreibzugriff auf den Builddienst zu gewähren. Weitere Informationen finden Sie unter Paketberechtigungen in Azure Pipelines .
Beispiele
- Wiederherstellen von
npm
Paketen für Ihr Projekt aus einer Registrierung in Ihrer Organisation - Wiederherstellen und Veröffentlichen von
npm
Paketen außerhalb Ihrer Organisation - npmrc
- npm
Wiederherstellen von npm
Paketen für Ihr Projekt aus einer Registrierung in Ihrer Organisation
Wenn Die einzigen authentifizierten Registrierungen, die Sie verwenden, Azure Artifacts-Registrierungen in Ihrer Organisation sind, müssen Sie nur den Pfad zu einer .npmrc
Datei zur npmAuthenticate
Aufgabe angeben.
.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
Wiederherstellen und Veröffentlichen von npm
Paketen außerhalb Ihrer Organisation
Wenn Ihre .npmrc
Azure Artifacts-Registrierungen aus einer anderen Organisation enthält oder ein authentifiziertes Paketrepository eines Drittanbieters verwendet, müssen Sie npm-Dienstverbindungen einrichten und in der customEndpoint
Eingabe angeben.
Registrierungen in Ihrer Azure Artifacts-Organisation werden ebenfalls automatisch authentifiziert.
.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
Die Registrierungs-URL, die auf einen Azure Artifacts-Feed verweist, kann das Projekt enthalten oder nicht. Eine URL für einen projektbezogenen Feed muss das Projekt enthalten, und die URL für einen Organisationsfeed darf das Projekt nicht enthalten. Erfahren Sie mehr über projektbezogene Feeds.
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
und ThirdPartyRepositoryNpmConnection
sind die Namen von npm-Dienstverbindungen , die für die Verwendung in Ihrer Pipeline konfiguriert und autorisiert wurden und über URLs verfügen, die mit denen in der angegebenen .npmrc
Datei übereinstimmen.
Anforderungen
Anforderung | BESCHREIBUNG |
---|---|
Pipelinetypen | YAML, Klassischer Build, klassisches Release |
Wird ausgeführt auf | Agent, DeploymentGroup |
Forderungen | Keine |
Capabilities | Diese Aufgabe erfüllt keine Anforderungen an nachfolgende Aufgaben im Auftrag. |
Befehlseinschränkungen | Any |
Setzbare Variablen | Any |
Agent-Version | 2.115.0 oder höher |
Aufgabenkategorie | Paket |