Ponieważ minęło już kilka lat i wydaje się, że nie jest to możliwe (używając samego npm), rozwiązaniem tego problemu jest użycie Nexus Repository Manager (firmy Sonatype). Nexus obsługuje wiele repozytoriów, umożliwia ich zamawianie, a także serwery proxy / pamięci podręczne w celu zwiększenia szybkości.
Istnieje darmowa wersja i wersja pro / płatna. Funkcję, która to obsługuje, opisano pod adresem :
https://help.sonatype.com/repomanager3/node-packaged-modules-and-npm-registries
Odpowiednie informacje są zduplikowane poniżej, więc jeśli / kiedy powyższy adres URL / łącze przestanie działać, informacje nadal będą dostępne.
Grupa repozytoriów jest zalecanym sposobem ujawnienia wszystkich repozytoriów rejestrów npm z menedżera repozytoriów użytkownikom, bez konieczności dalszej konfiguracji po stronie klienta. Grupa repozytoriów umożliwia udostępnianie zagregowanej zawartości wielu repozytoriów proxy i hostowanych za pomocą jednego adresu URL do npm i innych narzędzi.
Pozwala tworzyć prywatne rejestry npm
Prywatny rejestr npm może służyć do przesyłania własnych pakietów, a także pakietów innych firm.
I
Aby ograniczyć zduplikowane pobieranie i zwiększyć prędkość pobierania dla programistów i serwerów CI, należy proxy rejestru hostowanego pod adresem https://registry.npmjs.org . Domyślnie npm uzyskuje bezpośredni dostęp do tego rejestru. Możesz również pośredniczyć w innych rejestrach, których potrzebujesz.
Oto krótka lista rzeczy, które musisz wykonać, aby to zadziałało:
Zainstaluj Nexusa
Utwórz lokalne / prywatne repozytorium (lub wskaż swoje prywatne repozytorium na innym serwerze)
Utwórz GRUPĘ zawierającą Twoje prywatne repozytorium i repozytorium publiczne.
Skonfiguruj swój plik $ HOME / .npmrc tak, aby wskazywał na właśnie utworzoną „GRUPĘ”.
Opublikuj swoje prywatne pakiety npm w lokalnym repozytorium.
Użytkownicy mogą teraz przeprowadzić jednorazową konfigurację.
npm config set registry https://nexus/content/groups/GROUP
- Następnie użytkownicy mogą instalować zarówno pakiety publiczne, jak i prywatne za pośrednictwem
npm install
.
npm install my-private-package
npm install lodash any-other-public-package
Zarówno pakiety publiczne, jak i prywatne można zainstalować za pomocą prostego pliku npm install
polecenia. Nexus znajduje pakiet przeszukując każde repozytorium skonfigurowane w grupie i zwraca wyniki. Więc npm nadal uważa, że istnieje tylko jeden rejestr, ale za kurtyną jest używanych wiele repozytoriów.
WAŻNA UWAGA: Kiedy publikujesz komponenty, musisz określić npm publish --registry https://nexus/content/repositories/private-repo my-private-package
polecenie, aby pakiet został opublikowany we właściwym repozytorium.