本課程假設大家都是在 Linux 或者 Mac 下面。至于使用 Windows 并堅持玩新技術的同學,我堅信他們一定有著過人的、甚至是不可告人的兼容性 bug 處理能力,所以這部分同學麻煩在課程無法繼續時,自行兼容一下。
不久前公司剛發一臺新 Mac 給我,所以我對于在新環境中安裝 Node.js 的過程還是記憶猶新的。
其實這過程特別簡單:
### [](https://github.com/alsotang/node-lessons/tree/master/lesson0#先安裝一個-nvm-httpsgithubcomcreationixnvm-)先安裝一個 nvm(?[https://github.com/creationix/nvm](https://github.com/creationix/nvm)?)
~~~
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.2/install.sh | bash
~~~
nvm 的全稱是?**Node Version Manager**,之所以需要這個工具,是因為 Node.js 的各種特性都沒有穩定下來,所以我們經常由于老項目或嘗新的原因,需要切換各種版本。
安裝完成后,你的 shell 里面應該就有個 nvm 命令了,調用它試試
~~~
$ nvm
~~~
當看到有輸出時,則 nvm 安裝成功。
### [](https://github.com/alsotang/node-lessons/tree/master/lesson0#安裝-nodejs)安裝 Node.js
使用 nvm 的命令安裝 Node.js 最新穩定版,現在是?`v0.12.3`。
~~~
$ nvm install 0.12
~~~
安裝完成后,查看一下
~~~
$ nvm ls
~~~
這時候可以看到自己安裝的所有 Node.js 版本,輸出應如下:

(圖1)
那個綠色小箭頭的意思就是現在正在使用的版本,我這里是?`v0.10.29`。我還安裝了?`v0.11.14`,但它并非我當前使用的版本。
如果你那里沒有出現綠色小箭頭的話,告訴 nvm 你要使用?`0.12.x`?版本
~~~
$ nvm use 0.12
~~~
然后再次查看,這時候小箭頭應該出現了。
OK,我們在終端中輸入
~~~
$ node
~~~
REPL(read–eval–print loop) 應該就出來了,那我們就成功了。
隨便敲兩行命令玩玩吧。
比如?`> while (true) {}`,這時你的 CPU 應該會飚高。
### [](https://github.com/alsotang/node-lessons/tree/master/lesson0#完善安裝)完善安裝
上述過程完成后,有時會出現,當開啟一個新的 shell 窗口時,找不到 node 命令的情況。
這種情況一般來自兩個原因
一、shell 不知道 nvm 的存在
二、nvm 已經存在,但是沒有 default 的 Node.js 版本可用。
解決方式:
一、檢查?`~/.profile`?或者?`~/.bash_profile`?中有沒有這樣兩句
~~~
export NVM_DIR="/Users/YOURUSERNAME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
~~~
沒有的話,加進去。
這兩句會在 bash 啟動的時候被調用,然后注冊 nvm 命令。
二、
調用
`$ nvm ls`
看看像不像上述圖1中一樣,有 default 的指向。
如果沒有的話,執行
`$ nvm alias default 0.12`
再
`$ nvm ls`
看一下
- 關于
- Lesson 0: 《搭建 Node.js 開發環境》
- Lesson 1: 《一個最簡單的 express 應用》
- Lesson 2: 《學習使用外部模塊》
- Lesson 3: 《使用 superagent 與 cheerio 完成簡單爬蟲》
- Lesson 4: 《使用 eventproxy 控制并發》
- Lesson 5: 《使用 async 控制并發》
- Lesson 6: 《測試用例:mocha,should,istanbul》
- Lesson 7: 《瀏覽器端測試:mocha,chai,phantomjs》
- Lesson 8: 《測試用例:supertest》
- Lesson 9: 《正則表達式》
- Lesson 10: 《benchmark 怎么寫》
- Lesson 11: 《作用域與閉包:this,var,(function () {})》
- Lesson 12: 《線上部署:heroku》
- Lesson 13: 《持續集成平臺:travis》
- Lesson 14: 《js 中的那些最佳實踐》
- Lesson 15: 《Mongodb 與 Mongoose 的使用》
- Lesson 16: 《cookie 與 session》
- Lesson 17: 《使用 promise 替代回調函數》