Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Verwenden Sie diese Aufgabe, um npm Anmeldeinformationen für eine .npmrc Datei in Ihrem Repository für den Umfang des Builds bereitzustellen. Auf diese Weise können npmsowie npm Aufgabenläufer wie gulp und Grunt sich bei privaten Registern 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:
#azureDevOpsServiceConnection: # string. Alias: workloadIdentityServiceConnection. 'Azure DevOps' Service Connection.
#feedUrl: # string. Azure Artifacts URL.
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. Required. .npmrc file to authenticate.
#customEndpoint: # string. Credentials for registries outside this organization/collection.
Eingänge
azureDevOpsServiceConnection
-
'Azure DevOps' Serviceverbindung
Eingabealias: workloadIdentityServiceConnection.
string.
Wenn dies gesetzt ist, feedUrl ist erforderlich. Service Connections für externe Organisationen/Collection und benutzerdefinierte Endpunkte sind nicht kompatibel.
feedUrl
-
Azure Artifacts URL
string.
Wenn dies gesetzt ist, workloadIdentityServiceConnection ist erforderlich. Nicht kompatibel mit customEndpoint. Die Feed-URL sollte im npm Registerformat sein: https://pkgs.dev.azure.com/{ORG_NAME}/{PROJECT}/_packaging/{FEED_NAME}/npm/registry/.
workingFile
-
NPMRC-Datei zum Authentifizieren von
string. Erforderlich.
Der Pfad zur datei .npmrc, die die Registrierungen angibt, mit denen Sie arbeiten möchten. Wählen Sie die Datei und nicht den Ordner aus, z. B. /packages/mypackage.npmrc.
customEndpoint
-
Anmeldeinformationen für Registrierungen außerhalb dieser Organisation/Sammlung
string.
Die durch Trennzeichen getrennte Liste npm-Dienstverbindung Namen 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 Steuerelementoptionen und allgemeinen Aufgabeneigenschaften.
Ausgabevariablen
Keiner.
Bemerkungen
Verwenden Sie diese Aufgabe, um npm Anmeldeinformationen für eine .npmrc Datei in Ihrem Repository für den Umfang des Builds bereitzustellen. Auf diese Weise können npmsowie npm Aufgabenläufer wie gulp und Grunt sich bei privaten Registern 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 liegt hinter einem Webproxy. Wird
npmAuthenticatenpm/gulp/Gruntfür die Verwendung meines Proxys eingerichtet? - "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, durch die customEndpoint Eingabe angegeben, und die entsprechenden Anmeldeinformationen werden verwendet. Die .npmrc Datei wird am Ende der Pipelineausführung in den ursprünglichen Zustand zurückgesetzt.
Wann sollte ich diese Aufgabe in meiner Pipeline ausführen?
Diese Aufgabe muss ausgeführt werden, bevor Sie npm oder einen npm Taskrunner verwenden, um Pakete in ein authentifiziertes NPM-Repository wie Azure Artifacts zu installieren oder zu pushen. 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 Authentifizierungsdetails zu einer .npmrc Datei hinzu. Wenn Sie eine Authentifizierung für mehrere .npmrc Dateien benötigen, können Sie die Aufgabe mehrmals für jede .npmrc Datei ausführen. Alternativ können Sie eine .npmrc Datei erstellen, die alle von Ihren Projekten verwendeten Registrierungen angibt, npmAuthenticate für diese .npmrc Datei ausführt, und dann eine Umgebungsvariable festlegen, um diese .npmrc Datei als npm-Konfigurationsdatei pro Benutzer 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 liegt hinter einem Webproxy. Wird npmAuthenticatenpm/gulp/Grunt für die Verwendung meines Proxys eingerichtet?
Nein, das ist nicht möglich. Während diese Aufgabe selbst hinter einem Webproxy funktioniert, Ihr Agent für die Verwendungkonfiguriert wurde, konfiguriert er nicht npm oder npm Aufgabenläufer für die Verwendung des Proxys.
Dazu können Sie eine der folgenden Aktionen ausführen:
Legen Sie die Umgebungsvariablen
http_proxy/https_proxyund optional auf Ihre Proxyeinstellungenno_proxyfest. Weitere Informationen finden Sie unter npm config. Beachten Sie, dass es sich hierbei um häufig verwendete Variablen handelt, die auch andere Nicht-npm-Tools (z. B. Curl) verwenden können.Fügen Sie die Proxyeinstellungen der npm-Konfiguration, entweder manuell, mithilfe npm config set, oder durch Festlegen Umgebungsvariablen Präfix mit dem Präfix
NPM_CONFIG_.Von Bedeutung
npmAufgabenläufer sind möglicherweise nicht mit allen Methoden der Proxykonfiguration kompatibel, die vonnpmunterstützt werden.Geben Sie den Proxy mit einer Befehlszeilenkennzeichnung beim Aufrufen von
npman.- 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 ausgeführt wird als das Projekt, das den Feed hostet, müssen Sie das andere Projekt einrichten, um Lese-/Schreibzugriff auf den Builddienst zu gewähren. Weitere Details finden Sie Paketberechtigungen in Azure Pipelines.
Beispiele
-
Wiederherstellen von
npmPaketen für Ihr Projekt aus einer Registrierung innerhalb Ihrer Organisation -
Wiederherstellen und Veröffentlichen von
npmPaketen außerhalb Ihrer Organisation - npmrc
- npm
Wiederherstellen npm Pakete für Ihr Projekt aus einer Registrierung innerhalb Ihrer Organisation
Wenn die einzigen authentifizierten Register, die Sie verwenden, Azure Artifacts Registries in Ihrer Organisation sind, müssen Sie nur den Pfad zu einer .npmrc Datei zur Aufgabe npmAuthenticate 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 dein .npmrc Azure Artifacts Registries einer anderen Organisation enthält oder ein von Drittanbietern authentifiziertes Paket-Repository nutzt, musst du npm Service Connections einrichten und diese im customEndpoint Input angeben.
Auch Registries innerhalb Ihrer Azure Artifacts-Organisation werden 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 auch nicht. Eine URL für einen Projektbereichsfeed muss das Projekt enthalten, und die URL für einen organisationsbezogenen Feed darf das Projekt nicht enthalten. Erfahren Sie mehr über projektbezogenen Feeds.
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 und ThirdPartyRepositoryNpmConnection sind die Namen von npm-Dienstverbindungen, die für die Verwendung in Ihrer Pipeline konfiguriert und autorisiert wurden, und urLs enthalten, die mit denen in der angegebenen .npmrc Datei übereinstimmen.
Anforderungen
| Anforderung | BESCHREIBUNG |
|---|---|
| Pipelinetypen | YAML, Classic Build, Classic Release |
| Läuft auf | Agent, DeploymentGroup |
| Anforderungen | Nichts |
| Funktionen | Dieser Vorgang erfüllt keine Anforderungen für nachfolgende Vorgänge im Auftrag. |
| Befehlseinschränkungen | Jegliche |
| Settable-Variablen | Jegliche |
| Agentversion | 2.115.0 oder höher |
| Vorgangskategorie | Paket |