Połączenie źródła danych npm projektu npm do źródeł danych usługi Azure Artifacts
Artykuł
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Usługa Azure Artifacts umożliwia deweloperom publikowanie i instalowanie różnych typów pakietów z kanałów informacyjnych i publicznych rejestrów, takich jak npmjs.com. Aby uwierzytelnić się za pomocą usługi Azure Artifacts, należy skonfigurować plik konfiguracji npm.
Ten plik zawiera adresy URL kanału informacyjnego i poświadczenia używane przez narzędzie npm, oferując opcje dostosowywania zachowania klienta npm, takie jak konfigurowanie serwerów proxy, definiowanie domyślnych lokalizacji pakietów lub konfigurowanie prywatnych źródeł danych pakietów. Plik npmrc zazwyczaj znajduje się w katalogu głównym użytkownika, ale można go również utworzyć na poziomie projektu, aby zastąpić ustawienia domyślne. Modyfikując plik npmrc, użytkownicy mogą personalizować swoje środowisko npm, aby spełnić określone wymagania.
Wymagania wstępne
Organizacja i projekt usługi Azure DevOps. Utwórz organizację lub projekt, jeśli jeszcze tego nie zrobiono.
W przypadku najlepszych rozwiązań zaleca się użycie dwóch oddzielnych plików konfiguracji. Pierwszy jest używany do uwierzytelniania za pomocą usługi Azure Artifacts, podczas gdy drugi jest przechowywany lokalnie i przechowuje poświadczenia.
Aby skonfigurować drugi plik, wystarczy umieścić go w katalogu głównym na maszynie dewelopera i dołączyć wszystkie poświadczenia rejestru. Dzięki temu klient npm może łatwo uzyskać dostęp do poświadczeń na potrzeby uwierzytelniania, umożliwiając udostępnianie pliku konfiguracji przy zachowaniu bezpieczeństwa poświadczeń.
Poniższe kroki przeprowadzą Cię przez proces konfigurowania pierwszego pliku konfiguracji:
Uwaga
vsts-npm-auth nie jest obsługiwany w usłudze Azure DevOps Server.
Zaloguj się do organizacji usługi Azure DevOps, a następnie przejdź do projektu.
Wybierz pozycję Artefakty, a następnie wybierz pozycję Połączenie do kanału informacyjnego.
Wybierz pozycję npm w okienku nawigacji po lewej stronie.
Jeśli po raz pierwszy używasz usługi Azure Artifacts z narzędziem npm, wybierz pozycję Pobierz narzędzia i postępuj zgodnie z instrukcjami, aby zainstalować wymagania wstępne.
Postępuj zgodnie z instrukcjami w temacie Konfiguracja programu Project, aby nawiązać połączenie ze źródłem danych.
Dodaj plik npmrc w katalogu projektu w tym samym katalogu co plik package.json i skopiuj do niego poniższy fragment kodu.
Skopiuj następujący fragment kodu do pliku npmrc na poziomie użytkownika:
Kanał informacyjny o zakresie organizacji:
; begin auth token
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/:username=[ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Źródło danych o zakresie projektu:
; begin auth token
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Generowanie osobistego tokenu dostępu przy użyciu pakietów zakresów odczytu i zapisu.
Zakoduj nowo wygenerowany osobisty token dostępu w następujący sposób:
Uruchom następujące polecenie w oknie wiersza polecenia, a następnie wklej osobisty token dostępu po wyświetleniu monitu:
Wybierz kolekcję, a następnie przejdź do projektu.
Wybierz pozycję Artefakty, a następnie wybierz pozycję Połączenie do kanału informacyjnego.
Wybierz pozycję npm w okienku nawigacji po lewej stronie.
Jeśli po raz pierwszy używasz usługi Azure Artifacts z narzędziem npm, wybierz pozycję Pobierz narzędzia i postępuj zgodnie z instrukcjami, aby zainstalować wymagania wstępne.
Postępuj zgodnie z instrukcjami w temacie Konfiguracja programu Project, aby skonfigurować plik konfiguracji.
Dodaj plik npmrc w katalogu projektu w tym samym katalogu co plik package.json i skopiuj do niego poniższy fragment kodu.
Skopiuj następujący fragment kodu do pliku npmrc na poziomie użytkownika:
Źródło danych o zakresie kolekcji:
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Źródło danych o zakresie projektu:
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Generowanie osobistego tokenu dostępu przy użyciu pakietów zakresów odczytu i zapisu.
Zakoduj nowo wygenerowany osobisty token dostępu w następujący sposób:
Uruchom następujące polecenie w oknie wiersza polecenia, a następnie wklej osobisty token dostępu po wyświetleniu monitu:
Wybierz kolekcję, a następnie przejdź do projektu.
Wybierz pozycję Artefakty, a następnie wybierz pozycję Połączenie do kanału informacyjnego.
Wybierz pozycję npm w okienku nawigacji po lewej stronie.
Jeśli po raz pierwszy używasz usługi Azure Artifacts z narzędziem npm, wybierz pozycję Pobierz narzędzia i postępuj zgodnie z instrukcjami, aby zainstalować wymagania wstępne.
Postępuj zgodnie z instrukcjami w temacie Konfiguracja programu Project, aby skonfigurować plik konfiguracji.
Dodaj plik npmrc w katalogu projektu w tym samym katalogu co plik package.json i skopiuj do niego poniższy fragment kodu.
Skopiuj następujący fragment kodu do pliku npmrc na poziomie użytkownika:
Źródło danych o zakresie kolekcji:
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:username=DefaultCollection
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Źródło danych o zakresie projektu:
; begin auth token
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/registry/:email=npm requires email to be set but doesn't use the value
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:username=[ENTER_ANY_VALUE_BUT_NOT_AN_EMPTY_STRING]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//<SERVER_NAME>/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Generowanie osobistego tokenu dostępu przy użyciu pakietów zakresów odczytu i zapisu.
Zakoduj nowo wygenerowany osobisty token dostępu w następujący sposób:
Uruchom następujące polecenie w oknie wiersza polecenia, a następnie wklej osobisty token dostępu po wyświetleniu monitu:
Zastąp obie wartości [BASE64_ENCODED_PERSONAL_ACCESS_TOKEN] w pliku npmrc użytkownika osobistym tokenem dostępu z kroku 3.
Wybierz kolekcję, a następnie przejdź do projektu.
Wybierz pozycję Artefakty, a następnie wybierz pozycję Połączenie do kanału informacyjnego.
Zostanie wyświetlone nowe okno. W okienku nawigacji po lewej stronie wybierz pozycję npm.
Postępuj zgodnie z instrukcjami, aby skonfigurować projekt i pliki npmrc użytkownika .
Napiwek
Używanie wielu rejestrów w plikach npmrc jest obsługiwane z zakresami i źródłami nadrzędnymi.
Uwierzytelnianie potoku
Aby uwierzytelnić się w potoku, usługa Azure Artifacts zaleca użycie zadania uwierzytelniania npm.
W przypadku korzystania z modułów uruchamiaczy zadań, takich jak gulp lub Grunt, ważne jest, aby uwzględnić zadanie uwierzytelniania npm na początku potoku. Ta akcja gwarantuje, że poświadczenia są wstrzykiwane do pliku npmrc projektu i przechowywane w całym przebiegu potoku, umożliwiając kolejne kroki uzyskiwania dostępu do poświadczeń w pliku konfiguracji.
Przejdź do projektu, wybierz pozycję Potoki, a następnie wybierz definicję potoku.
Wybierz pozycję Edytuj , aby zmodyfikować potok.
Wybierz + , aby dodać nowe zadanie do potoku.
Przejdź do projektu, wybierz pozycję Kompilacje potoków>, a następnie wybierz definicję kompilacji.
Wybierz pozycję Edytuj , aby zmodyfikować potok kompilacji.
Wybierz + , aby dodać nowe zadanie do potoku kompilacji.
Wyszukaj zadanie npm Uwierzytelnij, a następnie wybierz pozycję Dodaj.
Wybierz plik npmrc, a następnie wybierz pozycję Zapisz i kolejkę po zakończeniu.
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc ## Path to the npmrc file
customEndpoint: #Optional ## Comma-separated list of npm service connection names for registries from external organizations. For registries in your org, leave this blank
Uwaga
Aby potok uzyskiwał dostęp do kanału informacyjnego, upewnij się, że rola usługi kompilacji jest ustawiona na Źródło danych i czytelnik nadrzędny (współautor) w ustawieniach kanału informacyjnego.
Uwaga
Jeśli twoja organizacja korzysta z zapory lub serwera proxy, upewnij się, że zezwalasz na odpowiednie adresy URL domeny. Aby uzyskać szczegółowe informacje, zobacz Dozwolone adresy IP i adresy URL domeny.
Rozwiązywanie problemów
Vsts-npm-auth nie jest rozpoznawany
Jeśli podczas wykonywania projektu wystąpi następujący błąd:
Cmd: 'vsts-npm-auth' is not recognized as an internal or external command, operable program or batch file.
PowerShell: vsts-npm-auth : The term 'vsts-npm-auth' is not recognized as the name of a cmdlet, function, script file, or operable program.
Jest prawdopodobne, że folder npm modules nie został dodany do ścieżki. Aby rozwiązać ten problem, uruchom ponownie Node.js instalatora i upewnij się, że wybrano Add to PATH opcję .
Alternatywnie możesz dodać folder npm modules do ścieżki, modyfikując zmienną PATH w %APPDATA%\npm wierszu polecenia lub $env:APPDATA\npm w programie PowerShell.
Nie można wykonać uwierzytelnienia
Jeśli wystąpi błąd E401: code E401 npm ERR! Unable to authenticate. vsts-npm-auth Uruchom polecenie z flagą -F, aby ponownie uwierzytelnić.
vsts-npm-auth -config .npmrc -F
Resetowanie vsts-npm-auth
Wykonaj następujące kroki, aby zresetować poświadczenia vsts-npm-auth:
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź: https://aka.ms/ContentUserFeedback.