----
----
----
### [windows 的請看這里https://my.oschina.net/summerdays/blog/835233](https://my.oschina.net/summerdays/blog/835233)
----
----
----
沒想到有這么多人看,這篇文章是復制過來的,本來是自己記錄下來看的,教程有些老,現在也不一定適合了,我決定在博客重新自己寫一下
Node.js下載
[Node.js中文網](http://nodejs.cn/)
#### 快速搭建 Node.js 開發環境
如果你想長期做 node 開發, 或者想快速更新 node 版本, 或者想快速切換 node 版本,
那么在非 Windows(如 osx, linux) 環境下, 請使用 nvm 來安裝你的 node 開發環境, 保持系統的干凈.
如果你使用 Windows 做開發, 那么你可以使用 nvmw 來替代 nvm
#### osx, linux 環境
如果你是 windows 環境開發, 請跳過這里, 直接查看下一章.
#### git clone nvm
直接從 github clone nvm 到本地, 這里假設大家都使用 ~/git 目錄存放 git 項目:
~~~
$ cd ~/git
$ git clone https://github.com/creationix/nvm.git
~~~
配置終端啟動時自動執行 source ~/git/nvm/nvm.sh,
在 ~/.bashrc, ~/.bash_profile, ~/.profile, 或者 ~/.zshrc 文件添加以下命令:
~~~
source ~/git/nvm/nvm.sh
~~~
重新打開你的終端, 輸入 nvm
~~~
$ nvm
Node Version Manager
Usage:
nvm help Show this message
nvm --version Print out the latest released version of nvm
nvm install [-s] <version> Download and install a <version>, [-s] from source
nvm uninstall <version> Uninstall a version
nvm use <version> Modify PATH to use <version>
nvm run <version> [<args>] Run <version> with <args> as arguments
nvm current Display currently activated version
nvm ls List installed versions
nvm ls <version> List versions matching a given description
nvm ls-remote List remote versions available for install
nvm deactivate Undo effects of NVM on current shell
nvm alias [<pattern>] Show all aliases beginning with <pattern>
nvm alias <name> <version> Set an alias named <name> pointing to <version>
nvm unalias <name> Deletes the alias named <name>
nvm copy-packages <version> Install global NPM packages contained in <version> to current version
Example:
nvm install v0.10.24 Install a specific version number
nvm use 0.10 Use the latest available 0.10.x release
nvm run 0.10.24 myApp.js Run myApp.js using node v0.10.24
nvm alias default 0.10.24 Set default node version on a shell
Note:
to remove, delete or uninstall nvm - just remove ~/.nvm, ~/.npm and ~/.bower folders
~~~
#### 通過 nvm 安裝任意版本的 node
nvm 默認是從 http://nodejs.org/dist/ 下載的, 國外服務器, 必然很慢,
好在 nvm 以及支持從鏡像服務器下載包, 于是我們可以方便地從七牛的 node dist 鏡像下載:
~~~
$ NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node nvm install 4
~~~
于是你就會看到一段非常快速進度條:
~~~
######################################################################## 100.0%
Now using node v4.3.2
~~~
如果你不想每次都輸入環境變量 NVM_NODEJS_ORG_MIRROR, 那么我建議你加入到 .bashrc 文件中:
~~~
# nvm
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node
source ~/git/nvm/nvm.sh
~~~
然后你可以繼續非常方便地安裝各個版本的 node 了, 你可以查看一下你當前已經安裝的版本:
~~~
$ nvm ls
nvm
v0.8.26
v0.10.26
v0.11.11
-> v4.3.2
~~~
#### windows 環境
[多版本nodejs管理工具nvm for windows](https://github.com/coreybutler/nvm-windows)
####配置node的下載路徑
--------------------------------------------------------------------
nvm默認的下載地址是[http://nodejs.org/dist/](http://nodejs.org/dist/),這是國外的服務器,在國內下載速度很慢。?
在控制臺輸入nvm,我們看到了?

好像是有設置下載鏡像的命令,但是我配置了一下,不行。查看issues發現好像是作者忘記加上去了= =。
**解決辦法:**?
在你nvm的安裝路徑下,找到**settings.txt**打開,在后面加加上
~~~
node_mirror: https://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/
~~~

--------------------------------------------------------------------
#### 通過 nvm 安裝任意版本的 node
nvm 默認是從 http://nodejs.org/dist/ 下載的, 國外服務器, 必然很慢,
npm也是從國外服務器下載的,基本下載不下來
好在 nvm 以及支持從鏡像服務器下載包, 于是我們可以方便地從淘寶的 node dist 鏡像下載:
~~~
set "NVMW_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node"
set "NVMW_NPMJS_COM_MIRROR=https://npm.taobao.org/mirrors/npm"
nvm install 4.3.2
~~~
如果你不想每次都輸入環境變量 NVMW_NODEJS_ORG_MIRROR, 那么我建議你在全局環境變量中增加它.
然后你可以繼續非常方便地安裝各個版本的 node 了, 你可以查看一下你當前已經安裝的版本:
~~~
$ nvm list
5.8.0
5.4.0
* 5.10.1 (Currently using 64-bit executable)
5.0.0
~~~
設置npm的獲取地址
`npm config set registry https://registry.npm.taobao.org`
#### 使用 cnpm 加速 npm
如果想升級npm自身,則會遇到一點問題,因為nodejs附帶了npm,因此無法全局升級npm,需要在nodejs的安裝目錄下局部升級npm:
~~~
D:
cd "nodejs"
npm update npm --registry=https://registry.npm.taobao.org
~~~
npm使用國內鏡像安裝cnpm,可以安裝任何包
~~~
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
~~~
同理 nvm , npm 默認是從國外的源獲取和下載包信息, 不慢才奇怪.
可以通過簡單的 ---registry 參數, 使用國內的鏡像 https://registry.npm.taobao.org :
~~~
$ npm --registry=https://registry.npm.taobao.org install koa
~~~
于是屏幕又嘩啦嘩啦地一大片輸出:
~~~
$ npm --registry=https://registry.npm.taobao.org install koa
npm http GET https://registry.npm.taobao.org/koa
npm http 200 https://registry.npm.taobao.org/koa
...
npm http 200 https://registry.npm.taobao.org/negotiator
npm http 200 https://registry.npm.taobao.org/keygrip
koa[@0](/user/0).5.2 node_modules/koa
├── koa-compose[@2](/user/2).2.0
├── statuses[@1](/user/1).0.2
├── finished[@1](/user/1).1.1
├── escape-html[@1](/user/1).0.1
├── only[@0](/user/0).0.2
├── debug[@0](/user/0).8.0
├── fresh[@0](/user/0).2.2
├── type-is[@1](/user/1).0.1
├── delegates[@0](/user/0).0.3
├── mime[@1](/user/1).2.11
├── co[@3](/user/3).0.5
├── accepts[@1](/user/1).0.1 (negotiator[@0](/user/0).4.2)
└── cookies[@0](/user/0).4.0 (keygrip[@1](/user/1).0.0)
~~~
但是畢竟鏡像跟官方的 npm 源還是會有一個同步時間差異, 目前 cnpm 的默認同步時間間隔是 15 分鐘.
如果你是模塊發布者, 或者你想馬上同步一個模塊, 那么推薦你安裝 cnpm cli:
~~~
$ npm --registry=https://registry.npm.taobao.org install cnpm -g
~~~
通過 cnpm 命令行, 你可以快速同步任意模塊:
~~~
$ cnpm sync koa connect mocha
~~~
呃, 我就是不想安裝 cnpm cli 怎么辦? 哈哈, 早就想到你會這么懶了, 于是我們還有一個 web 頁面:
例如我想馬上同步 koa, 直接打開瀏覽器: https://npm.taobao.org/sync/koa
或者你是命令行控, 通過 open 命令打開:
~~~
$ open https://npm.taobao.org/sync/koa
~~~
如果你安裝的模塊依賴了 C++ 模塊, 需要編譯, 肯定會通過 node-gyp 來編譯,
node-gyp 在第一次編譯的時候, 需要依賴 node 源代碼, 于是又會去 node dist 下載,
于是大家又會吐槽, 怎么 npm 安裝這么慢…
好吧, 于是又要提到 --disturl 參數, 通過七牛的鏡像來下載:
~~~
$ npm --registry=https://registry.npm.taobao.org --disturl=https://npm.taobao.org/mirrors/node install microtime
~~~
再次要提到 cnpm cli, 它已經默認將 --registry 和 --disturl 都配置好了, 誰用誰知道
.
寫到這里, 就更快疑惑那些不想安裝 cnpm cli 又吐槽 npm 慢的同學是基于什么考慮不在本地安裝一個 cnpm 呢?
注意:
nvm切換nodejs的時候,要用自帶的cmd切換,不要用git-bash
nodejs安裝完命令無法使用,這是因為全局目錄沒有在環境變量里,加上就好了
`Path += C:\Users\Administrator\AppData\Roaming\npm;`