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. npm
Umoż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. npm
Umoż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?
- Kiedy w potoku powinienem uruchomić to zadanie?
- Mam wiele projektów npm. Czy muszę uruchomić to zadanie dla każdego pliku npmrc?
- Mój agent znajduje się za internetowym serwerem proxy. Czy
npmAuthenticate
skonfigurowananpm/gulp/Grunt
do korzystania z mojego serwera proxy? - Mój potok musi uzyskać dostęp do kanału informacyjnego w innym projekcie
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 npm
moduł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 opcjonalnieno_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 przeznpm
program .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 - Przywracanie i publikowanie
npm
pakietów spoza organizacji - npmrc
- npm
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 ThirdPartyRepositoryNpmConnection
są nazwami 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 |