2012-04-06 16 views
39

Próbuję zainstalować node.js. Poszłam za this tutorial i utknąłem w środku.Node.js Cygwin nieobsługiwany

Kiedy piszę ./configure w moim terminalu cygwin, mówi "cygwin nie jest wspierany". Proszę, pomóż mi z góry Z góry dziękuję.

+2

zamiast kontynuować tutaj byłby idealny, [niestety Q została skutecznie zapytał ponownie 1,5 roku później w stackoverflow.com/questions/17297422/trouble-with-starting-node-js-from-a-cygwin -console] (http://stackoverflow.com/questions/17297422/trouble-with-starting-node-js-from-a-cygwin-console#comment-36204702); jak wyjaśnia ten komentarz, jest tam kilka przydatnych rzeczy, ale w przypadku nowych rzeczy, uprzejmie proszę to tutaj, na pierwsze pytanie. –

Odpowiedz

37

Węzeł w moim doświadczeniu działa dobrze w Cygwin, co Węzeł zazwyczaj zawiera błędy EINVAL w wydaje się być MINTTY który jest emulacja terminala "skóra", która jest domyślna dla cygwin. Nadal nie jestem pewien, dlaczego te błędy EINVAL występują w 100%, ale poniżej są kroki i sztuczki, których używam do pracy węzła.

W moim /cygwin/home/{username}/.bashrc dodać węzeł do ścieżki tak Cygwin może znaleźć

export PATH=$PATH:"/cygdrive/c/Program Files/nodejs/" 

Jeśli prowadzisz wersję 32 bitową węzła:

export PATH=$PATH:"/cygdrive/c/Program Files (x86)/nodejs/" 

następnie, aby uruchomić npm bez okien do spraw linux uruchomić program w trybie administratora Cygwin następnie uruchomić:

dos2unix '/cygdrive/c/Program Files/nodejs/npm' 

w tym pliku punkt biegania s i większość pakietów npm będzie działało w MINTTY po prostu dobrze, chociaż raz na jakiś czas napotkasz problemy EINVAL z niektórymi pakietami npm jak karma. Również nie będzie w stanie uruchomić interpreter bezpośrednio w MINTTY, zawsze chcę zrobić te rzeczy biegnę:

cygstart /bin/bash 

Spowoduje to otwarcie okna rodzimego Cygwin bash.exe, stąd uruchomieniu interpretera lub grupę wszelkie niepokojące polecenie pakietu, które powoduje EINVAL. To trochę jest do bani, musisz to robić, ale rzadko używam tego dnia i kocham MINTTY za bardzo, żeby go nie używać.

Należy również pamiętać, że można uruchomić dowolną jedną linię kodu węzeł w MINTTY po prostu działa coś takiego:

node -e "console.log('hello node')" 
+1

Powinienem był prawdopodobnie zauważyć, że dos2unix będzie musiał być zainstalowany z procesu instalacji cygwin lub w cygwin przez apt-cyg. Węzeł będzie musiał być instalowany normalnie za pomocą instalatora systemu Windows. – troy

+0

Czy nie jest plik cmd? Dlaczego warto korzystać z dos2unix na pliku cmd? – CMCDragonkai

+3

To jest. Ale istnieje również skrypt powłoki "npm" bez rozszerzenia, który jest wykonywany przez Cygwin po użyciu polecenia "npm". Właściwie to nie mam pojęcia, dlaczego ten skrypt powłoki zawiera zakończenia linii systemu Windows. –

-1

Złap i uruchom instalator Windows.
W podpowiedzi Cygwin wpisz: node
Sprawdź, czy to działa.

+0

Pobrałem to, wyodrębniłem to z terminala cygwin, ale ten sam problem występuje. Instalator instaluje plik gdzie indziej, więc zrobiłem wszystko z terminalu cygwin, a w cygwin plik nodejs instaluje się w katalogu domowym/Dell/nodejs /, gdzie mam napisać komendę ./configure, ale wciąż ten sam wynik, – Mj1992

+0

człowiek, jeśli rzeczywiście chcesz trzymać się cygwin .... nie uruchamiaj instalatora z poziomu cygwin. Zrób to z systemu Windows. Po uruchomieniu cygwin upewnij się, że węzeł jest na twojej ścieżce (C: \ Program Files \ nodejs). – mihai

+1

To działało dobrze dla mnie na więcej niż jednej maszynie. Po prostu zainstaluj Cygwin, a następnie zainstaluj Node, używając swojego macierzystego instalatora Windows. Kiedy wpiszesz 'który węzeł' lub' który npm', rozwiąże to miejsce, w którym został zainstalowany węzeł (może to działa, ponieważ Węzeł widzi Cygwin i dodaje jego ścieżki do $ PATH Cygwin'a). – thure

5

Użyj Console2, pozwala ci uruchamiać zakładki powłok CLI. Wygląda na to, że działa w Cygwin wewnątrz konsoli2 pozwala mi używać węzła REPL w porządku. Nie mam pojęcia dlaczego: P

Śledź ten przewodnik, aby dodać Cygwin do console2:
http://blog.msbbc.co.uk/2009/11/configuring-console-2-and-bash-with.html

+0

Właśnie zauważyłem [Wyszukiwarka Google (Node-js cygwin)] (https://www.google.com/search?q=Node-js + cygwin) znajdź 5 http://nlighteneddevelopment.com/content/nodejs-cygwin również ma to (używając Console2) jako poprawkę –

-1

z systemu Windows, uruchom Cygwin.bat (zamiast Cygwin Terminal), a następnie w tym węźle uruchom: zobacz i odpowiedz na odpowiedź this na this - to samo pytanie zadano 1,5 roku później.

+1

Ten link może odpowiedzieć na pytanie, ale tutaj powinny być zawarte podstawy kodu, a link powinien być dla odniesienia. – worldofjr

8

W prostszej pochodnej odpowiedzi Troya dla tych, którzy dopiero chcą instalować pakiety KMP:

  1. Install Node.js z pakietu Instalatora Windows.
  2. Dodaj to do PATH z export PATH=$PATH:"/cygdrive/c/Program Files/nodejs/" (oczywiście zastępując ścieżkę do katalogu instalacyjnego Node.js, gdzie go zainstalowałeś).
  3. Istnieje obecny błąd w wersji systemu Windows, który można naprawić, uruchamiając mkdir -p ~/AppData/Roaming/npm. To błąd dla wszystkich systemów Windows, a nie tylko Cygwin. W pewnym momencie nie będziesz już musiał tego robić, ale polecenie nie powinno mieć żadnych negatywnych skutków ubocznych.
  4. Sprawdź to. Np. npm install pretty-diff -g.
  5. Aby móc uruchomić nowo zainstalowane oprogramowanie, należy dodać lokalizacje instalacji do zmiennej PATH. Można je znaleźć pod npm bin -g i npm bin (flaga -g jest "globalną" lokalizacją instalacji).

Niezupełnie coś specjalnego, co trzeba zrobić, aby uruchomić go w Cygwin (chociaż nie mogę powiedzieć, czy wszystko działa).

+0

+1 dla uproszczenia rzeczy dotyczących właśnie NPM (wszystko, czego potrzebuję teraz). Jako aktualizacja, najnowszy instalator ustawia ścieżkę PATH zarówno do węzła Node exe, jak i do globalnego obszaru modułu, więc wszystko, co musisz zrobić, to zrestartować powłoki, jeśli masz jakiekolwiek otwarte. Kroki 2, 3 i 5 można teraz pominąć.Lokalne instalacje npm (bez '-g') wykonane przez powłokę Cygwin zapisują do' node_modules' w bieżącym katalogu, więc użytkownik powinien być w stanie samodzielnie je zdefiniować. Nie potrzebuję PATHify ich dla 'require()' do pracy. – juanitogan

0

Z sugestią Bjorn'S (using Console2) i alias Soyuka za (steps here), mój node.js v0.10.13 oraz npm v1.3.2 obecnie pracuje pod Babun v1.02, dystrybucji Cygwin. enter image description here

+0

Bardzo dobrze się słyszy! Rzeczywiście wkrótce spróbuję i mam nadzieję, że to zadziała. Ale dlaczego używasz wersji Node.js, która jest najwyraźniej 1,3 roku nieaktualna? --given you "odpowiedział 15 grudnia 14 o 17:07", więc gdy węzeł "2014.10.20 wersja 0.10.33 (stabilny)" był najnowszy, ale używasz "node.js v0.10.13", więc od (datowane) " 2013.07.09 Wersja 0.10.13 (stabilna) ", cytując oficjalny http://nodejs.org/changelog.html. -I jak dobrze to działa, gdy dla wszystkich programów (na pozór tylko Babun, Node, i npm, prawda?), używasz bieżących wersji stabilnych? -to byłby zwykły i ogólnie potrzebna rzecz do zrobienia –

0

Do okien, wystarczy uruchomić bash.exe cmd, tak że można mieć pracę bash wokół z konsoli cmd bezpośrednio która mogłaby obsługiwać wszystkie NODE działa idealnie.

C:\Users\郷>bash 

郷@CHIGIX ~ 
$ node 
> 
+0

OP już korzysta z terminalu cygwin.Jak rozpoczyna się bash od cmd.exe odpowiedzieć na pytanie? –

+0

Emulacja z cygwin jest po prostu umieszczane wiele plików programu exe w katalogu instalacyjnym cygwin, które mają taką samą nazwę dla linuxu common polecenia/wykonywalne pliki binarne. Tak, możesz mieć środowisko poleceń basha z cmd.exe oczywiście, co jest ogólnie w 'C: \ cygwin64 \ bin \ bash.exe'. –

+0

Doświadczyłem dziwnego zachowania podczas używania terminala cygwin nie wyświetlają się żadne dane wyjściowe npm lub pasek postępu, ale to rozwiązanie pomogło mi. Upewnij się, że dodasz cygwin64/bin do zmiennej PATH, w przeciwnym razie to rozwiązanie nie będzie pomocne –