„Rejestr npm config set register https://registry.npmjs.org/” nie działa w pliku bat systemu Windows

191

Tworzę a.bat na Windows 7, zawartość a.bat jest:

@echo off
npm config set registry https://registry.npmjs.org/

a następnie uruchomić a.bat, ale nie działa, znajduję słowo „set” jest specjalnym słowem kluczowym dla npm i bat, czy są jakieś metody rozwiązania tego pytania?

mopduan
źródło
295
Czy ktoś jeszcze przychodzi do tego postu za każdym razem, gdy chce zobaczyć, jaki jest adres rejestru npm? haha
kevingilbert100
9
Do Twojej wiadomości: Potrzebowałem wersji .com rejestru: tzn. https://registry.npmjs.com/Zamiasthttps://registry.npmjs.org/
infl3x
@ infl3x dlaczego? jakie są różnice?
htho
7
@ kevingilbert100, npm config get registryaby poznać adres URL rejestru
Sridhar
2
@Sridhar Nope. To zapewnia tylko bieżący rejestr rejestru, a nie „oficjalny” rejestr npm.
Emobe

Odpowiedzi:

222

Nie powinieneś zmieniać rejestru npm za pomocą .batplików. Zamiast tego spróbuj zmodyfikować .npmrcplik, który jest konfiguracją npm. Prawidłowe polecenie zmiany rejestru to

npm config set registry <registry url>

możesz znaleźć więcej informacji za pomocą npm help configpolecenia, a także sprawdzić uprawnienia, kiedy i jeśli uruchamiasz .batpliki w ten sposób.

Gntem
źródło
być może metoda, której użyłem, nie jest odpowiednia dla mojego pytania, ale wciąż dziękuję za odpowiedź :)
mopduan
2
@MarcellodeSales trynpm config set registry=<registry url>
L1fescape
7
configCzęść nie jest to konieczne, można uruchomić tylko npm get registry, aby zobaczyć swój prąd i npm set registry https://registry.npmjs.org/ustawić ją z powrotem do domyślnego.
AlecRust
czy możliwe jest skonfigurowanie rejestru npm <localmod_modules folder>. Jeśli nie chcę pobierać niczego z Internetu, a wszystkie artefakty znajdują się w aplikacji.
sumit sachdeva
84

Możemy również uruchomić instalację npm z registryopcjami dla wielu niestandardowych adresów URL rejestru.

npm install --registry=https://registry.npmjs.org/ 
npm install --registry=https://custom.npm.registry.com/ 
Venkat.R
źródło
1
Długo tego szukałem. Dziękuję za udostępnienie!
falsarella,
1
Pan jest wybawcą.
Raj Gupta,
56

Możesz to zmienić za pomocą .bat, upewnij się, że wcześniej uruchomiłeś polecenie call, miejmy nadzieję, że pomoże to każdemu w przyszłości w tworzeniu podobnych poleceń .bat

call npm config set registry https://registry.npmjs.org/
jsmartfo
źródło
7
@Milad Nie wiem. Możesz utworzyć licznik atomowy i użyć systemu sterowanego zdarzeniami do aktualizacji licznika. Możesz użyć rozproszonej bazy danych do przechowywania licznika, dzięki czemu Twój licznik jest wysoce dostępny.
prayagupd
19

W wersji 4.4.1 możesz użyć:

npm config set @myco:registry=http://reg.example.com

Gdzie @myco jest zakresem twojego pakietu. Możesz zainstalować pakiet w ten sposób:

npm install @myco/my-package

ref: https://docs.npmjs.com/misc/scope

Gilberto Alexandre
źródło
15

Prawdopodobnie spóźniłem się z odpowiedzią. Ale jeśli ktoś tego potrzebuje, podążanie za nim działa dobrze, ponieważ korzystałem z niego wiele razy.

npm config set registry=https://registry.npmjs.com/
Kavya Rani
źródło
5

W wersji npm 3.7.3

npm set registry=http://whatever/

madKakoo
źródło
2

Wykonując plik .bat, konfigurujesz konfigurację tylko dla tej sesji, a nie globalnie. Po otwarciu i ponownym uruchomieniu polecenia cmd i uruchomieniu npm installtej konfiguracji nie ustawisz tej sesji, więc zmodyfikuj plik .bat jako

@echo off
npm config set registry https://registry.npmjs.org/
@cmd.exe /K
rakesh
źródło
1
  1. Ustaw rejestr npm globalnie

    użyj poniższej komendy, aby zmodyfikować plik konfiguracyjny .npmrc dla zalogowanego użytkownika

    npm config set registry <registry url>

    Przykład: npm config set registry https://registry.npmjs.org/


  1. Ustaw zakres rejestru npm

    Zakresy pozwalają grupować powiązane pakiety razem. Pakiety o zasięgu zostaną zainstalowane w podfolderze w folderze node_modules .

    Przykład : node_modules / @ my-org / packagaename

    Aby ustawić rejestr zakresu, użyj: npm config set @my-org:registry http://example.reg-org.com

    Aby zainstalować pakiety za pomocą zakresu, użyj: npm install @my-org/mypackage

    za każdym razem, gdy instalujesz jakiekolwiek pakiety z scope @ my-org, npm przeszuka w ustawieniu rejestru połączonym z scope @ my-org adres URL rejestru.


  1. Ustaw rejestr npm lokalnie dla projektu

    Aby zmodyfikować rejestr npm tylko dla bieżącego projektu. utwórz plik w folderze głównym projektu jako.npmrc

    Dodaj poniższą zawartość do pliku

   registry = 'https://registry.npmjs.org/'
Ivix4u
źródło
0
2.name can no longer contain capital letters

nie używaj wielkich liter w pakiecie:

npm install --save uex

Użyj tego:

npm install --save vuex
Hamid Shariati
źródło
0

Jak zauważył Gntem, zmiana rejestru npm przy użyciu .batpliku może nie być możliwa . Rozumiem jednak, że potrzebujesz możliwości automatyzacji zmieniających się rejestrów. Możesz to zrobić, konfigurując pliki w osobnych plikach (np. Npmrc_jfrog & npmrc_default ) i zlecając kopiowanie plików..npmrc.bat

Na przykład (w systemie Windows): Twój default_registry.batbędzie miał

xcopy /y npmrc_default .npmrc

i twoja jfrog_registry.batwola

xcopy /y npmrc_jfrog .npmrc

Uwaga: /y pomija monit o potwierdzenie zamiaru zastąpienia istniejącego pliku docelowego.

Zapewni to skopiowanie wszystkich właściwości konfiguracji ( rejestr, serwer proxy, klucze API itp. ) .npmrc.

Możesz przeczytać więcej o xcopy tutaj .

Srichakra
źródło