2012-04-06 94 views
39

我試圖安裝node.js中我跟着this tutorial,我被困在中間。Node.js的Cygwin的不支持

當我在Cygwin的終端寫./configure它說:「不支持的cygwin」。請幫助我 在此先感謝。

+2

而不是繼續這裏將是理想的,[不幸的是這種問答得到了有效又問1.5年後來在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);正如那個評論所解釋的那樣,thre是一些有用的東西,但對於新東西,請把它放在第一個問題上。 – 2014-05-11 04:08:01

回答

37

節點在我的經驗,運行在Cygwin的罰款,什麼節點通常有EINVAL錯誤中似乎MINTTY這是一個終端仿真「皮膚」,默認爲cygwin。我仍然不確定爲什麼這些EINVAL錯誤發生100%,但以下是我用來獲取節點工作的步驟和技巧。

在我/cygwin/home/{username}/.bashrc我添加節點路徑,這樣的cygwin可以找到它

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

如果您運行節點的32位版本:

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

然後使NPM運行沒有窗戶到Linux的問題我在管理模式下啓動的cygwin然後運行:

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

在這一點上運行文件s,最NPM包將在MINTTY就好了運行,但每過一段時間和你會遇到一定的NPM包因緣EINVAL問題。此外,你將不能夠直接在MINTTY運行解釋,只要我想要做的這些事情我跑:

cygstart /bin/bash 

這將打開一個原生的cygwin bash.exe窗口,從這裏你運行解釋或任何導致EINVAL的麻煩包命令。它有點勉強你必須這樣做,但我很少使用這一天,我喜歡敏迪太多,不使用它。

另外請注意,您可以通過只運行這樣運行MINTTY任何一行代碼節點:

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

我應該可能已經注意到,dos2unix將需要從cygwin安裝過程或通過cygwin通過安裝的apt-CYG。並且需要使用Windows安裝程序正常安裝Node。 – troy 2014-04-19 13:31:27

+0

是不是npm一個cmd文件?爲什麼在cmd文件上使用dos2unix? – CMCDragonkai 2014-05-18 07:33:38

+3

是的。但是也有沒有擴展名的「npm」shell腳本,當你使用「npm」命令時,它由Cygwin執行。其實我沒有線索,爲什麼這個shell腳本包含Windows行結尾。 – 2014-05-27 14:33:58

-1

抓住並運行Windows安裝程序。
在Cygwin的提示符下鍵入node
看看它是否工作。

+0

我已經下載它,從cygwin終端提取它,但同樣的問題發生。安裝程序將文件安裝在其他地方,所以我做了一切從cygwin終端和cygwin nodejs文件安裝在家裏/戴爾/ nodejs /文件夾我在哪裏編寫./configure命令,但仍然是相同的結果 – Mj1992 2012-04-06 15:44:46

+0

男人,如果你確實想堅持cygwin ....不要從cygwin中運行安裝程序。從Windows執行它。當啓動cygwin時,確保節點位於路徑中(C:\ Program Files \ nodejs)。 – mihai 2012-04-06 20:19:20

+1

這對我在多臺機器上工作得很好。只需安裝Cygwin,然後使用其本機Windows安裝程序安裝Node。當你輸入'which node'或'which npm'時,它將解析Node的安裝位置(也許這樣可以工作,因爲Node會看到Cygwin並將其路徑添加到Cygwin的$ PATH中)。 – thure 2013-05-01 17:49:45

5

使用Console2,它允許你運行創造CLI殼的標籤。看來在console2中運行cygwin允許我使用節點REPL就好了。我不知道爲什麼:P

按照本指南添加Cygwin來console2:
http://blog.msbbc.co.uk/2009/11/configuring-console-2-and-bash-with.html

+0

我剛剛注意到[Google搜索(Node-js cygwin)](https://www.google.com/search?q=Node-js + cygwin)find 5 http://nlighteneddevelopment.com/content/nodejs-cygwin也有這個(使用Console2)作爲他們的修復 – 2014-05-10 09:02:39

-1

從Windows,運行Cygwin.bat(而不是Cygwin的終端),然後在運行節點:看並在this回答this回答於1.5年後問的有效問題。

+1

此鏈接可能會回答這個問題,但代碼的基礎知識應該包含在這裏,鏈接應作爲參考。 – worldofjr 2015-01-18 22:41:34

8

特洛伊的回答對於那些只是希望安裝NPM包一個簡單的衍生:

  1. 與Windows安裝程序包安裝Node.js
  2. 將其添加到PATH export PATH=$PATH:"/cygdrive/c/Program Files/nodejs/"(顯然將Node.js的安裝目錄替換爲安裝目錄的路徑)。
  3. 在Windows版本中有一個當前的錯誤,可以通過運行mkdir -p ~/AppData/Roaming/npm來解決。這是所有Windows的錯誤,而不僅僅是Cygwin。在將來的某個時候,你不必再這樣做,但是命令不應該有任何負面影響。
  4. 測試它。例如,npm install pretty-diff -g
  5. 爲了能夠運行新安裝的軟件,您需要將安裝位置添加到PATH。您可以通過npm bin -gnpm bin-g標誌是「全局」安裝位置)找到這些標誌。

沒有什麼特別的,你必須做的才能讓它在Cygwin上運行(儘管我不能說一切正常)。

+0

+1簡化有關剛公共管理的事情(我現在需要的)。作爲更新,最新的安裝程序將PATH設置爲Node的exe和全局模塊區域,因此,只需要打開,就可以重新啓動shell。現在可以跳過步驟2,3和5。本地npm安裝(不帶'-g')通過Cygwin shell寫入當前目錄中的'node_modules',因此用戶應該能夠自己計算出它們。我不需要PATHify他們'require()'工作。 – juanitogan 2016-02-14 02:13:29

0

隨着比約恩的建議(using Console2)和Soyuka的別名(steps here),我的Node.js v0.10.13和NPM V1.3.2現在正在Babun V1.02,Cygwin的分配工作。 enter image description here

+0

非常好聽!事實上,我很快就會嘗試一下,真的希望它能起作用。但是,爲什麼你使用的Node.js版本顯然已經過了1.3年? - 給你「2014年12月15日在17:07回答」所以當節點「2014.10.20版本0.10.33(穩定)」是最新的,但你使用「node.js v0.10.13」,因此從(日期)「 2013.07.09版本0.10.13(穩定版)「,引用官方的http://nodejs.org/changelog.html。 - 對於所有軟件(看起來只是Babun,Node,&npm,對嗎? ),你使用當前的穩定版本嗎? - 這將是通常和一般需要的事情。 – 2015-02-01 15:04:08

0

對於Windows,只需在cmd中運行bash.exe,以便您可以直接使用cmd控制檯運行bash,這可以支持所有節點完美工作。

C:\Users\郷>bash 

郷@CHIGIX ~ 
$ node 
> 
+0

OP已經在使用cygwin終端。如何從cmd.exe開始bash回答這個問題? – 2015-02-22 17:39:54

+0

Cygwin的仿真只是把許多exe程序文件放到cygwin安裝目錄中,它們與linux常用命令/可執行二進制文件具有相同的名稱。所以,當然你可以從cmd.exe得到bash命令環境,通常在'C:\ cygwin64 \ bin \ bash.exe'。 – 2015-02-23 09:43:41

+0

使用cygwin終端時,我遇到了一個奇怪的行爲沒有npm進度輸出或進度條,但這個解決方案幫助了我。確保將cygwin64/bin添加到PATH中,否則此解決方案將不會有幫助 – 2015-11-13 08:44:48