Próbuję wszystkich sposobów tworzenia aplikacji React. Próbowałem z mavenem, a teraz próbuję z systemem budowania aplikacji typu crate-act-app z Facebook Incubators.
Kiedy próbowałem uruchomić polecenie create-react-app my-app
w środowisku npm, działało na moim systemie osobistym bez żadnych problemów. Ale kiedy wypróbowałem to samo polecenie w moim środowisku pracy, napotkałem ten błąd w wierszu polecenia
npm ERR! node v6.10.2
npm ERR! npm v3.10.10
npm ERR! code UNABLE_TO_GET_ISSUER_CERT_LOCALLY
npm ERR! unable to get local issuer certificate
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR! <https://github.com/npm/npm/issues>
node.js
reactjs
npm
create-react-app
Dinesh
źródło
źródło
sudo
kiedy biegałemnpm install aws-sdk
. Uruchamianiesudo npm install aws-sdk
spowodowało ten błąd.Odpowiedzi:
Szybkim rozwiązaniem z wyszukiwarki internetowej było
npm config set strict-ssl false
, na szczęście zadziałało. Ale jako część mojego środowiska pracy jestem ograniczony do ustawienia flagi strict-ssl na wartość false.Później znalazłem bezpieczne i działające rozwiązanie,
to działało doskonale i otrzymałem komunikat
Happy Hacking!
o sukcesie , nie ustawiając flagi strict-ssl na false.źródło
sudo
kiedy biegałemnpm install aws-sdk
. Uruchamianiesudo npm install aws-sdk
spowodowało ten błąd.npm config set strict-ssl false
inpm config set registry http://registry.npmjs.org/
nadal otrzymywałem błąd podczas uruchamiania,sudo npm install aws-sdk
ale kiedy upuściłemsudo
część i po prostu uruchomiłemnpm install aws-sdk
, zadziałało.npm config set strict-ssl false
nie działa. Uważam, że jest to coś, co zespółnode.js
inpm
zespół powinni zbadać i udokumentować, wykonując odpowiednią pracę, jeśli nie da się tego naprawić.co może się dziać, jeśli Twoja firma odszyfrowuje określony ruch i ponownie szyfruje go swoim certyfikatem (który prawdopodobnie masz już w swoim pęku kluczy lub zaufanych certyfikatach głównych)
jeśli używasz węzła 7 lub nowszego, stwierdziłem, że ta poprawka jest kompatybilna z node i node-gyp (w systemie Windows musisz to zrobić inaczej, ale w zasadzie wystarczy dodać tę zmienną środowiskową):
export NODE_EXTRA_CA_CERTS="absolute_path_to_your_certificates.pem"
(w systemie Windows może być konieczne usunięcie cytatów - patrz komentarze)plik pem może mieć wiele certyfikatów: https://nodejs.org/api/cli.html#cli_node_extra_ca_certs_file
upewnij się, że twoje certyfikaty są w odpowiednim formacie PEM (potrzebujesz prawdziwych podziałów wierszy, a nie dosłownych
\n
)Nie mogłem zmusić go do pracy ze ścieżkami względnymi (
.
lub~
)Ta poprawka w zasadzie mówi npm i node-gyp, aby używali sprawdzenia w zwykłych urzędach certyfikacji, ale także zezwalali na ten certyfikat, gdy go napotkają
Idealnie byłoby, gdybyś mógł korzystać z zaufanych certyfikatów systemu, ale niestety tak nie jest.
źródło
Zmiana adresu URL repozytorium NPM na HTTP działa jako szybka poprawka, ale chciałem użyć HTTPS.
W moim przypadku pełnomocnik u mojego pracodawcy (ZScaler) powodował problemy (ponieważ działa jako MITM, powodując problemy z weryfikacją certyfikacji)
Zapomniałem, że znalazłem skrypt, który pomaga w tym i Git (do klonowania repozytoriów GitHub przez HTTPS miał ten sam problem) i rozwidliłem go do mojego użytku
Zasadniczo robi to dla git:
a dla Node dodaje
proxy=http://gateway.zscaler.net:80/
na końcuc:\Users\$USERNAME\npm\.npmrc
To rozwiązało problem.
źródło
ip.zscaler.com
nazwę chmury i ustaw ją w adresie URL. Np .: jeśli jest napisane,zscalertwo.net
zamień na następujący adres URL:gateway.zscalertwo.net
Po wypróbowaniu każdego rozwiązania, które znalazłem:
npm config set strict-ssl=false
npm config set registry http://registry.npmjs.org/
npm config set cafile /path/to/your/cert.pem
set NODE_TLS_REJECT_UNAUTHORIZED=0
Rozwiązaniem, które wydaje się teraz działać dla mnie najlepiej, jest użycie zmiennej środowiskowej NODE_EXTRA_CA_CERTS, która rozszerza istniejące CA zamiast zastępowania ich opcją cafile w pliku .npmrc. Możesz to ustawić, wpisując w swoim terminalu:
NODE_EXTRA_CA_CERTS=path/to/your/cert.pem
Oczywiście ustawienie tej zmiennej za każdym razem może być denerwujące, więc dodałem ją do mojego profilu basha, aby była ustawiana za każdym razem, gdy otwieram terminal. Jeśli nie masz jeszcze
~/.bash_profile
pliku, utwórz go. Następnie na końcu tego pliku dodajexport NODE_EXTRA_CA_CERTS=path/to/your/cert.pem
. Następnie usuń ustawienie cafile w pliku .npmrc.źródło
process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = 0;
Zaufaj mi, to zadziała dla Ciebie:
źródło
Miał ten sam błąd. Wygląda na to, że jest to związane z certyfikatami SSL. Jeśli używasz NPM dla pakietów publicznych (nie potrzebujesz zabezpieczenia HTTPS), możesz wyłączyć ścisłą weryfikację klucza SSL za pomocą następującego polecenia.
Może to być najprostsza poprawka, jeśli chcesz tylko jednorazowo zainstalować kilka publicznie dostępnych pakietów.
źródło
Miałem ten błąd, gdy próbowałem zaktualizować npm, ale miałem naprawdę starą wersję (1.3.6!) Zainstalowaną z yum w AWS Linux. Udało mi się ręcznie zainstalować nowszą wersję npm i wszystko zostało naprawione.
źródło
Poniższy kod działał dla mnie idealnie tutaj, aby http zamiast https
źródło
W moim przypadku w pewnym momencie ustawiłem konfigurację globalną tak, aby używała certyfikatu przeznaczonego dla projektu.
npm config list
Otworzyłem plik, usunąłem linię i
npm install
znowu pracowałem.źródło
otrzymałem poniższy błąd
Poniższe polecenie rozwiązało problem:
źródło