npmAuthenticate@0 — uwierzytelnianie npm (dla modułów uruchamiający zadania) w wersji 0
Użyj tego zadania, aby podać poświadczenia npm
do pliku .npmrc
w repozytorium dla zakresu kompilacji. Umożliwia to npm
, a także npm
modułów uruchamiających zadania, takich jak gulp i Grunt, do uwierzytelniania za pomocą prywatnych rejestrów.
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.
Dane wejściowe
workingFile
-
pliku npmrc do uwierzytelniania
string
. To jest wymagane.
Ścieżka do pliku .npmrc
, który określa rejestry, z którymi chcesz pracować. Wybierz plik, a nie folder, taki jak /packages/mypackage.npmrc
.
customEndpoint
-
poświadczenia dla rejestrów spoza tej organizacji/kolekcji
string
.
Rozdzielona przecinkami lista połączenia usługi npm nazw rejestrów spoza tej organizacji lub kolekcji. Określony plik .npmrc
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 danych wejściowych zadań podrzędnych. Aby uzyskać więcej informacji, zobacz opcje kontroli i typowe właściwości zadań.
Zmienne wyjściowe
Żaden.
Uwagi
Użyj tego zadania, aby podać poświadczenia npm
do pliku .npmrc
w repozytorium dla zakresu kompilacji. Umożliwia to npm
, a także npm
modułów uruchamiających zadania, takich jak gulp i Grunt, do uwierzytelniania za pomocą prywatnych rejestrów.
- Jak to zadanie działa?
- Kiedy w potoku należy 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
skonfigurowaćnpm/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 plik .npmrc
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 hostowanych przez inną firmę identyfikatory URI rejestru będą porównywane z identyfikatorami URI połączeń usługi npm określonych przez dane wejściowe customEndpoint
, a odpowiednie poświadczenia będą używane. Plik .npmrc
zostanie przywrócony do pierwotnego stanu na końcu wykonywania potoku.
Kiedy w potoku należy uruchomić to zadanie?
To zadanie musi zostać uruchomione przed użyciem npm
lub modułu uruchamiającego zadania npm
, aby zainstalować lub wypchnąć pakiety 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 szczegółów uwierzytelniania tylko do jednego pliku .npmrc
jednocześnie. Jeśli potrzebujesz uwierzytelniania dla wielu plików .npmrc
, możesz uruchomić zadanie wiele razy, raz dla każdego pliku .npmrc
. Alternatywnie rozważ utworzenie pliku .npmrc
, który określa wszystkie rejestry używane przez projekty, uruchamiając npmAuthenticate
w tym pliku .npmrc
, a następnie ustawiając zmienną środowiskową, aby wyznaczyć ten plik .npmrc
jako plik 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
skonfigurować npm/gulp/Grunt
do korzystania z mojego serwera proxy?
Odpowiedź brzmi nie. Chociaż samo zadanie będzie działać za internetowym serwerem proxy agent został skonfigurowany do używania, nie konfiguruje npm
ani modułów uruchamiającego zadania npm
do korzystania z serwera proxy.
W tym celu można wykonać następujące czynności:
Ustaw zmienne środowiskowe
http_proxy
/https_proxy
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
(np. curl).Dodaj ustawienia serwera proxy do konfiguracji npmręcznie przy użyciu zestawu konfiguracji npmlub ustawiając zmienne środowiskowe prefiksem
NPM_CONFIG_
.ostrożność :
moduły uruchamiającego zadanianpm
mogą nie być zgodne ze wszystkimi metodami konfiguracji serwera proxy obsługiwanymi przeznpm
.Określ serwer proxy z flagą wiersza polecenia podczas wywoływania
npm
.- script: npm ci --https-proxy $(agent.proxyurl)
Jeśli serwer proxy wymaga uwierzytelniania, może być konieczne dodanie dodatkowego kroku kompilacji w celu utworzenia 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, aby udzielić dostępu do odczytu/zapisu w usłudze kompilacji. Aby uzyskać więcej informacji, zobacz Uprawnienia pakietu w usłudze Azure Pipelines.
Przykłady
-
Przywróć pakiety
npm
dla projektu z rejestru w organizacji -
Przywracanie i publikowanie pakietów
npm
spoza organizacji - npmrc
- npm
Przywracanie pakietów npm
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 pliku .npmrc
zadania npmAuthenticate
.
.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 pakietów npm
spoza organizacji
Jeśli .npmrc
zawiera rejestry usługi Azure Artifacts z innej organizacji lub użyj 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 źródła danych 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 pliku .npmrc
.
Wymagania
Wymaganie | Opis |
---|---|
Typy potoków | YAML, klasyczna kompilacja, wersja klasyczna |
Działa na | Agent, DeploymentGroup |
Wymagania | Żaden |
możliwości | To zadanie nie spełnia żadnych wymagań dotyczących kolejnych zadań w zadaniu. |
ograniczenia poleceń | Jakikolwiek |
zmienne ustawiane | Jakikolwiek |
Wersja agenta | 2.115.0 lub nowsza |
Kategoria zadań | Pakiet |