Udostępnij za pośrednictwem


npmAuthenticate@0 — uwierzytelnianie npm (dla modułów uruchamiający zadania) v0

Użyj tego zadania, aby podać npm poświadczenia do .npmrc pliku w repozytorium dla zakresu kompilacji. npmUmożliwia to uwierzytelnianie za pomocą prywatnych rejestrów, a także npm modułów uruchamiających zadania, takich jak gulp i Grunt.

Składnia

# 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.

Dane wejściowe

workingFile - Plik npmrc do uwierzytelnienia
string. Wymagane.

Ścieżka do .npmrc pliku, który określa rejestry, z którymi chcesz pracować. Wybierz plik, a nie folder, taki jak /packages/mypackage.npmrc.


workingFile - Plik npmrc do uwierzytelnienia
string.

Ścieżka do .npmrc pliku, który określa rejestry, z którymi chcesz pracować. Wybierz plik, a nie folder, taki jak /packages/mypackage.npmrc.


customEndpoint - Poświadczenia rejestrów spoza tej organizacji/kolekcji
string.

Rozdzielona przecinkami lista nazw połączeń usługi npm dla rejestrów spoza tej organizacji lub kolekcji. Określony .npmrc plik musi zawierać wpisy rejestru odpowiadające połączeniom usługi. Jeśli potrzebujesz tylko rejestrów w tej organizacji lub kolekcji, pozostaw to pole puste. Poświadczenia kompilacji są używane automatycznie.


customEndpoint - Poświadczenia rejestrów spoza tego konta/kolekcji
string.

Rozdzielona przecinkami lista nazw połączeń usługi npm dla rejestrów spoza tej organizacji lub kolekcji. Określony .npmrc plik musi zawierać wpisy rejestru odpowiadające połączeniom usługi. Jeśli potrzebujesz tylko rejestrów w tej organizacji lub kolekcji, pozostaw to pole puste. Poświadczenia kompilacji są używane automatycznie.


Opcje sterowania zadaniami

Wszystkie zadania mają opcje sterowania oprócz ich danych wejściowych zadań. Aby uzyskać więcej informacji, zobacz Opcje sterowania i typowe właściwości zadań.

Zmienne wyjściowe

Brak.

Uwagi

Użyj tego zadania, aby podać npm poświadczenia do .npmrc pliku w repozytorium dla zakresu kompilacji. npmUmożliwia to uwierzytelnianie za pomocą prywatnych rejestrów, a także npm modułów uruchamiających zadania, takich jak gulp i Grunt.

Jak to zadanie działa?

To zadanie wyszukuje określony .npmrc plik dla wpisów rejestru, a następnie dołącza szczegóły uwierzytelniania odnalezionych rejestrów na końcu pliku. W przypadku wszystkich rejestrów w bieżącej organizacji/kolekcji używane są poświadczenia kompilacji. W przypadku rejestrów w innej organizacji lub hostowanej przez inną firmę identyfikatory URI rejestru będą porównywane z identyfikatorami URI połączeń usługi npm określonymi przez customEndpoint dane wejściowe, a odpowiednie poświadczenia zostaną użyte. Plik .npmrc zostanie przywrócony do pierwotnego stanu na końcu wykonywania potoku.

Kiedy w potoku powinienem uruchomić to zadanie?

To zadanie musi być uruchamiane przed użyciem npmmodułu uruchamiającego npm zadania lub modułu uruchamiającego zadania w celu zainstalowania lub wypychania pakietów do uwierzytelnionego repozytorium npm, takiego jak Azure Artifacts. Nie ma żadnych innych wymagań dotyczących zamawiania.

Mam wiele projektów npm. Czy muszę uruchomić to zadanie dla każdego pliku npmrc?

To zadanie spowoduje dodanie tylko szczegółów uwierzytelniania do jednego .npmrc pliku jednocześnie. Jeśli potrzebujesz uwierzytelniania dla wielu .npmrc plików, możesz uruchomić zadanie wiele razy, raz dla każdego .npmrc pliku. Alternatywnie rozważ utworzenie .npmrc pliku określającego wszystkie rejestry używane przez projekty, uruchomione npmAuthenticate w tym .npmrc pliku, a następnie ustawienie zmiennej środowiskowej w celu wyznaczenia tego .npmrc pliku jako pliku konfiguracji npm dla użytkownika.

- 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 znajduje się za internetowym serwerem proxy. Czy npmAuthenticate skonfigurowana npm/gulp/Grunt do korzystania z mojego serwera proxy?

Odpowiedź brzmi nie. Chociaż to zadanie będzie działać za serwerem proxy sieci Web , agent został skonfigurowany do użycia, nie konfiguruje npm modułów uruchamiającego zadania ani npm nie będzie używać serwera proxy.

W tym celu można wykonać następujące czynności:

  • Ustaw zmienne http_proxy/https_proxy środowiskowe i opcjonalnie no_proxy na ustawienia serwera proxy. Aby uzyskać szczegółowe informacje, zobacz npm config . Należy pamiętać, że są to często używane zmienne, których mogą również używać inne narzędzia inne niżnpm narzędzia (np. curl).

  • Dodaj ustawienia serwera proxy do konfiguracji narzędzia npm ręcznie przy użyciu zestawu konfiguracji npm lub ustawiając zmienne środowiskowe poprzedzone prefiksem NPM_CONFIG_.

    Ostrożność:
    npm moduły uruchamiający zadania mogą nie być zgodne ze wszystkimi metodami konfiguracji serwera proxy obsługiwanymi przez npmprogram .

  • Określ serwer proxy z flagą wiersza polecenia podczas wywoływania polecenia npm.

    - script: npm ci --https-proxy $(agent.proxyurl)
    

Jeśli serwer proxy wymaga uwierzytelniania, może być konieczne dodanie dodatkowego kroku kompilacji w celu skonstruowania uwierzytelnionego identyfikatora URI serwera proxy.

- 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)

Mój potok musi uzyskać dostęp do kanału informacyjnego w innym projekcie

Jeśli potok jest uruchomiony w innym projekcie niż projekt hostowania kanału informacyjnego, należy skonfigurować drugi projekt w celu udzielenia dostępu do odczytu/zapisu do usługi kompilacji. Aby uzyskać więcej informacji, zobacz Uprawnienia pakietu w usłudze Azure Pipelines .

Przykłady

Przywracanie npm pakietów dla projektu z rejestru w organizacji

Jeśli jedynymi uwierzytelnionymi rejestrami, których używasz, są rejestry usługi Azure Artifacts w organizacji, wystarczy określić ścieżkę do .npmrc pliku do npmAuthenticate zadania.

.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

Przywracanie i publikowanie npm pakietów spoza organizacji

Jeśli Zawierasz .npmrc rejestry usługi Azure Artifacts z innej organizacji lub użyjesz uwierzytelnionego repozytorium pakietów innej firmy, musisz skonfigurować połączenia usługi npm i określić je w danych wejściowych customEndpoint . Rejestry w organizacji usługi Azure Artifacts również zostaną automatycznie uwierzytelnione.

.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

Adres URL rejestru wskazujący źródło danych usługi Azure Artifacts może lub nie może zawierać projektu. Adres URL kanału informacyjnego o zakresie projektu musi zawierać projekt, a adres URL kanału informacyjnego o zakresie organizacji nie może zawierać projektu. Dowiedz się więcej o kanałach informacyjnych o zakresie projektu.

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 i ThirdPartyRepositoryNpmConnectionnazwami połączeń usługi npm , które zostały skonfigurowane i autoryzowane do użycia w potoku, oraz mają adresy URL zgodne z tymi w określonym .npmrc pliku.

Wymagania

Wymaganie Opis
Typy potoków YAML, kompilacja klasyczna, wersja klasyczna
Działa na Agent, DeploymentGroup
Wymagania Brak
Możliwości To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu.
Ograniczenia poleceń Dowolne
Zmienne w formie tabeli settable Dowolne
Wersja agenta 2.115.0 lub nowsza
Kategoria zadania Pakiet