Freigeben über


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 npmes , 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 npmes , sowie npm Aufgabenrunnern wie gulp und Grunt, sich bei privaten Registrierungen zu authentifizieren.

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_proxyhttps_proxy/und optional no_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 werden npm.

  • 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

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