如何在 Windows 作業系統安裝 Node.js 執行環境 (Cygwin)

  分享到噗浪!

由於 jQuery 1.5 在前幾天釋出正式版,我從 Release Notes 中發現 jQuery Team 這次改用 UglifyJS 對整個 jQuery 原始碼進行編譯 (其實是將 JS 最小化)(原本是使用 Google Closure Compiler ),但 UglifyJS 只能執行在 NodeJS 執行環境下,原本 NodeJS 只能跑在 Linux 環境下,還好從  node.js v0.2 版之後就開始支援在 Windows 環境下執行,以下是設立 NodeJS 執行環境的流程。

⊙ 下載並安裝 Cygwin 並選取 Node.js 所需的額外套件

下載 http://cygwin.com/setup.exe

如果有看到 *.tw 的台灣 Mirror 站建議選台灣的,沒有的話選日本會比較快:

如果您是首次安裝 Cygwin 可以直接忽略這個警告訊息,如果你之前已經安裝 Cygwin 1.7 之前的版本就應注意,請參考 What's new and what changed in Cygwin 1.7 文章說明。

選取套件時必須選取 Node.js 所需的額外套件,由於套件很多,建議用搜尋的方式來找尋套件:

image

Devel 分類

  • gcc-g++: C++ compiler
  • gcc-mingw-g++: Mingw32 support headers and libraries for GCC C++
  • gcc4-g++: G++ subpackage
  • git: Fast Version Control System – core files ( 如果需要從 github 下載最新版源碼可以裝這個 )
  • make: The GNU version of the 'make' utility
  • openssl-devel: The OpenSSL development environment
  • pkg-config: A utility used to retrieve information about installed libraries
  • zlib-devel: The zlib compression/decompression library (development)

Editor 分類

  • vim: Vi IMproved - enhanced vi editor

Python 分類

  • 整個類別全部安裝,你只要點選 Python 右邊的圖示並切換至 Install 即可。

Web 分類

  • wget: Utility to retrieve files from the WWW via HTTP and FTP
  • curl: Multi-protocol file transfer command-line tool

下一步之後會提示你有許多相依的套件需要安裝,基本上直接按下一步即可

接下來的安裝過程有點久,安裝時間跟你的網路速度有些關係,因為需要動態下載需安裝的檔案。

 

⊙ 在 Windows Vista 以後的版本,必須在 Cywgin 的 ASH 模式下執行 rebaseall 才能正常編譯

  1. 開啟命令提示字元 (Command Prompt)
  2. 進入 C:\cygwin\bin 目錄
  3. 執行 ash 進入 Shell 模式
  4. 執行 ./rebaseall -v 完成編譯時所有相依函式庫的對應
  5. 執行 exit 退出 ash

 

⊙ 開啟 Cygwin 視窗,下載、編譯、安裝 Node.JS

先複製最新版的 Node.js 原始碼網址,再到 Cygwin 視窗用 wget 下載到 Cygwin 執行環境下

請參考以下指令進行下載、解壓縮、編譯、安裝:

   1:  wget http://nodejs.org/dist/node-v0.2.6.tar.gz
   2:  tar xf node-v0.2.6.tar.gz
   3:  cd node-v0.2.6
   4:  ./configure
   5:  make
   6:  make install

執行完成後就可以立即使用 NodeJS 了,可以輸入以下指令查詢您成功安裝的 node 版本編號:

node --version

照理說 node.js 應該已經可以使用了,不過由於 node.js 採用 c-ares 函式庫來解析 DNS,而該函式庫又會抓取 /etc/resolv.conf 裡的 Nameserver 定義,所以你必須手動建立 /etc/resolv.conf 檔案並設定名稱伺服器位址才能讓 node.js 執行網路功能時正常運作,以下是該檔案的內容。

nameserver 168.95.1.1
nameserver 8.8.8.8
nameserver 8.8.4.4

最後,我們要來測試 node.js 是否真的可以在 Windows 上執行,我們就來用 node.js 寫一個最簡單的 HTTP Server,用來回應一個簡單的字串,而這也是在 node.js 官網上最經典的範例。

用 vi 建立一個 example.js 檔案,內容如下:

var http = require('http');

http.createServer(function (request, response) {
  response.writeHead(200, {'Content-Type': 'text/html'});
  response.end('<b>Hello World from Cygwin</b>');
}).listen(8124);

console.log('Server running at http://127.0.0.1:8124/');

 

然後使用以下指令執行:

node example.js

最後用瀏覽器察看該網址就知道有沒有正常執行了:

安裝完成!

【後記】

其實在十多年前 JavaScript 就有 Server 的版本 (Netscape's LiveWire),但一直以來都是 Client-side JavaScript 在流行,實在沒想到在 Client-side JavaScript 被徹底濫用的今天竟然讓 Server-side JavaScript (SSJS) 漸漸復甦起來,而且這次的 node.js 似乎來勢洶洶,我覺得是個值得關注的技術。

以下是一場關於介紹 NodeJS 的演講,有興趣且過年無聊的人可以下載 HD 的版本回來慢慢觀看:

 

相關連結

評論

二月 5. 2011 06:42

利奥

0.3.7 我编译失败,你试试看?
我QQ 308212012 或 email联系

利奥 United States

二月 5. 2011 15:29

Will 保哥

利奥: node-0.3.7 不支援 Cygwin 環境下編譯,但在其他原生的 Linux 環境都可以。

Will 保哥 Taiwan

二月 8. 2011 02:08

聽.風

想請問大大我是否能把node.js理解成javascript版的php?
有點不懂他是啥XDD

聽.風 Taiwan

三月 14. 2011 23:42

robin

請問最後一段要測試
--------------------------------------------
是否真的可以在 Windows 上執行
用 vi 建立一個 example.js 檔案,內容如下
--------------------------------------------
vi是指什麼 ?

robin Taiwan

三月 15. 2011 00:39

Will 保哥

robin: vi 是一個在 Linux 常見的文字編輯器,你也可以改用 notepad 來編輯。

Will 保哥 Taiwan

八月 29. 2011 10:45

小星

怎麼cygwin連wget都行不到=.="

小星 Hong Kong S.A.R.

十月 13. 2011 14:53

heywap

很喜欢你的一系列NODE的文章。请个问题想请教下。
我使用Windows平台上的node.exe v0.5.9版。
没有安装cygwin,我现在想使用Socket.IO 插件(http://github.com/LearnBoost/Socket.IO-node)

请问是不是一定要装npm?
为什么我直接下载LearnBoost-socket.io-0.8.5-24-g373c729.zip文件后,解压,然后
var io = require('./LearnBoost-socket.io-0.8.5-24-g373c729').listen(80);
会提示Cannot find module sockt.io-client

谢谢。

heywap People's Republic of China

十月 28. 2011 04:41

caasi

您好,謝謝你這篇文章,今天成功在 windows上面裝好了 node。
但是中途我遇到:Unable to Remap to Same Address as Parent這個問題。
好在有官方的說明:github.com/.../...ding-node.js-on-Cygwin-(Windows)
裡面的參考資料對為什麼 rebaseall有更清楚的說明,不知道 Will兄有沒有考慮做個介紹?
連結在此:code.google.com/.../CygwinDllRemappingFailure

caasi Taiwan

四月 16. 2012 23:21

qutengfei

我和小星是一样的,我是今天晚上下载的cygwin,但是在wget那个nodejs的时候提示我wget命令找不到,我又试着重新安装一下,但是在选择的web类型下面,根本就没有wget,我搜索也没有,
不知道是怎么回事,你知道这样对于一个新手来说是很困惑的.

我尝试着下载nodejs.org的msi windows下的安装文件来安装和试着运行,但是我安装了,却不知道系统到底发生了什么变化,以及如何运行nodejs的程序.

qutengfei People's Republic of China

四月 17. 2012 09:29

Will 保哥

Dear All,

我有在 2011/9/19 另外發表過一篇【如何在Windows作業系統安裝 Node.js 執行環境 (WebMatrix)】文章,裝不起來的人可以參考該文章的安裝方法,會簡單許多喔!

blog.miniasp.com/.../...t-env-using-WebMatrix.aspx


Will 保哥 Taiwan

四月 29. 2012 16:25

qutengfei

现在已经可以直接在windows上安装和使用nodejs了.安装成功之后直接cmd node -v

qutengfei People's Republic of China

新增評論


( 您輸入的Email不會顯示於網站上 )

  Country flag

biuquote
  • 評論
  • 線上預覽
Loading