Muszę uruchomić najnowszą wersję Node i NPM w systemie Windows. Zainstalowałem Node 0.5.8 i pobrałem źródła NPM z GitHub. Kroki, które wykonałem, aby zainstalować NPM, zostały wymienione w witrynie GitHub, ale mam problem z uruchomieniem następującego polecenia:
node cli.js install npm -gf
ale kończy się niepowodzeniem z następującym komunikatem o błędzie:
Error: connect UNKNOWN
at errnoException (net_uv.js:566:11)
at Object.afterConnect [as oncomplete] (net_uv.js:557:18)
System Windows_NT 5.1.2600
command "...\\Node\\bin\\node.exe" "...\\npm\\cli.js" "install" "npm" "-gf"
cwd ...\npm
node -v v0.5.8
npm -v 1.0.94
code UNKNOWN
Myślę, że jest to problem, ponieważ potrzebuję uwierzytelnienia na moim serwerze proxy, aby połączyć się z Internetem. Ale nie znalazłem sposobu, aby powiedzieć instalatorowi, aby używał moich danych logowania do logowania. Czy istnieje możliwość podania mojego adresu IP serwera proxy i danych logowania do instalacji npm za pomocą argumentów wiersza poleceń?
W razie potrzeby mogę podać pełny dziennik (ale wydaje się, że nie ma już żadnych istotnych informacji), używając pastebin.
Odpowiedzi:
set http_proxy
działał dla mnie naprawdę dobrze, ale musiałem go wprowadzać za każdym razem, gdy otwierałem wiersz polecenia. Musiałem więc połączyć wiele odpowiedzi, a teraz moja jest stała.Moja sekwencja wyglądała następująco:
C:\Users\YourUserName
.npmrc
proxy = http://domain\\username:password@ip:port
proxy = http://username:password@ip:port
npm
Inni odnieśli dodatkowy sukces dzięki następującym dodatkowym poleceniom:
strict-ssl = false
* Powinieneś być w stanie użyć adresu IP lub URL do proxy zamiast „IP” powyżej.
Twój łańcuch proxy może wymagać drobnych poprawek, ale dzięki temu nie musiałem dodawać tego za każdym razem.
Twoje zdrowie
źródło
proxy = http://ip:port/ https-proxy = http://ip:port/ registry = http://registry.npmjs.org/ strict-ssl = false
domain\\user:password@urltoproxy:port
jednak użyć , kiedy uruchamiamnpm install
zmiany opcji nadomain/user:password@urltoproxy:port
Więc jak mam to obejść?-ssl=false registry=http://registry.npmjs.org/ proxy=http://domain\\username:password#@proxy.url:8080
wtedy, gdy otrzymuję ustawienia z config za pomocąnpm config get proxy
:http://domain/username:password#@proxy.url:8080
zauważ, że odwrócony ukośnik odwrotny „\\” zmienia się w ukośnik do przodu / ”Może ustawienie zmiennej środowiskowej będzie dla Ciebie działać:
(W moim przypadku rozwiązuje to problem z „połączeniem NIEZNANYM”, ale pojawia się zupełnie inny błąd „zawieszania się gniazda”. Próbowałem także ustawić zmienną środowiskową HTTPS_PROXY, ale otrzymałem ten sam wynik).
źródło
set HTTP_PROXY=http://domain\user:[email protected]:port
Miałem ten sam problem i oto, co zrobiłem, aby to zadziałało:
C:\Users\YourUserName
.npmrc
I jego wpis będzie brzmiał:
Spróbuj
node cli.js install npm -gf
ponownie wykonać polecenie .źródło
node config set proxy http://username:password@server:port
~/.npmrc
pliku jak wyżej, który mówi npm, abyhttp://
zamiast tego używał rejestruhttps://
, a następnie ustawienie mojejhttp_proxy
zmiennej środowiskowej nahttp://myusername:[email protected]:1234
Po kilku badaniach mogłem go użyć w następujący sposób:
Zainstaluj serwer proxy autoryzacji NTLM lub inny serwer proxy dla NTLM, taki jak Cntlm. Osobiście wolę serwer Python, ponieważ mogę go majstrować, a wydajność nie stanowi problemu.
Skonfiguruj konfigurację; zauważ, że w moim przypadku musiałem włączyć zarówno tryb LM, jak i NT, i podejrzewam, że jest to normalny przypadek w dzisiejszych czasach.
Ustaw zmienną środowiskową http_proxy i https_proxy, aby wskazywały na lokalnego proxy:
ustaw http_proxy = "localhost: 5865"
ustaw https_proxy = "localhost: 5865"
npm powinien teraz działać, oczywiście powinien zostać wykonany z powłoki, w której zdefiniowano powyższe zmienne środowiskowe.
źródło
Poniższe działało dla mnie.
W systemie Windows 7:
To powinno utworzyć plik o nazwie
.npmrc
wC:/users/<username>
folderze.źródło
Wpisz to w wierszu poleceń:
npm set proxy http://user:pass@ip:port
npm set https-proxy http://user:pass@ip:port
NIE ZAPOMNIJ ZAWIERAĆ HTTP: // przed swoją nazwą użytkownika. To zadziałało dla mnie.
źródło
Ten problem został dla mnie rozwiązany po utworzeniu pliku .npmrc jak powyżej, a następnie uruchomieniu polecenia adduser i podążaniu za instrukcjami cmd.
Uruchom następującą komendę, aby sprawdzić, czy masz autoryzowaną nazwę użytkownika:
źródło
Każda z powyższych odpowiedzi wymaga wpisania hasła przez użytkownika w pliku tekstowym lub w zmiennej środowiskowej.
Osobiście nie podobało mi się takie rozwiązanie ze względu na ich niepewne podejście. Próbowałem więc napisać aplikację, która wstrzykuje token Kerberos bieżącego użytkownika w ramach wymiany między klientem (npm, bower, git) a serwerem proxy. To powiedziawszy, Active Directory jest tylko zastrzeżoną implementacją Kerberos.
Używam tego oprogramowania codziennie na hoście Windows 8.1. Kod (golang) i pliki binarne pierwszego wydania można znaleźć na stronie https://github.com/nilleb/authentication-proxy .
źródło
Wszystkie trzy rzeczy działały dla mnie w .npmrc
źródło
Przynajmniej w systemie Windows działa dla mnie z następującymi ustawieniami:
tzn. (1) użyj
%5C
zamiast\
(jak sugerowano gdzie indziej) i (2) użyj adresu IP zamiast nazwy komputera lokalnego dla serwera proxy.źródło
Otrzymasz hosta proxy i port od administratora serwera lub wsparcia.
Po tej konfiguracji
Jeśli w haśle jest jakiś znak specjalny, spróbuj użyć% urlencode. Np .: - shuold funta (skrótu) należy zastąpić% 23.
źródło
Rozwiązanie, które zadziałało, jest następujące:
npm config set http_proxy http: // nazwa użytkownika : hasło @ host / IP : port
npm config set proxy http: // nazwa użytkownika : hasło @ host / IP : port
zamień parametry na wartości, w moim przypadku
nazwa użytkownika : (pusty)
hasło : (puste)
host / IP : 192.36.36.110
port : 8080
więc Moje polecenia są
zestaw konfiguracyjny npm http_proxy http: //: @ 192.36.36.110: 8080
npm config set proxy http: //: @ 192.36.36.110: 8080
źródło
CNTLM nie działało dla mnie. Próbowałem wszystkich możliwych kombinacji. NPM podawał błąd uwierzytelnienia. Skrzypek przybył na ratunek i oszczędził mi czas. Jest łatwy w instalacji i konfiguracji. Ustaw regułę Fiddlera na Automatycznie uwierzytelniane. W .npmrc ustaw je
To zadziałało dla mnie :)
źródło
To, co zadziałało, było następujące:
Nie musiałem wpisywać żadnych nazw użytkowników ani haseł, po prostu URL pliku PAC.
źródło