nodejs 環境安裝與問題解決

快速搭建 Node.js 開發環境以及加速 npm


在公交車上刷微博,仍是有不少同窗在諮詢: html

  • 如何快速搭建 node 開發環境
  • npm 超慢
  • github 沒法打開的問題

因而我以爲應該寫一篇文章解答全部這些起步問題,讓新同窗也能順順利利入門。 node

快速搭建 Node.js 開發環境

若是你想長期作 node 開發, 或者想快速更新 node 版本, 或者想快速切換 node 版本, 那麼在非 Windows(如 osx, linux) 環境下, 請使用 nvm 來安裝你的 node 開發環境, 保持系統的乾淨. linux

若是你使用 Windows 作開發, 那麼你可使用 nvmw 來替代 nvm git

osx, linux 環境

若是你是 windows 環境開發, 請跳過這裏, 直接查看下一章. github

git clone nvm

直接從 github clone nvm 到本地, 這裏假設你們都使用~/git目錄存放 git 項目: web

$ cd ~/git $ git clone https://github.com/creationix/nvm.git

配置終端啓動時自動執行source ~/git/nvm/nvm.sh, 在~/.bashrc,~/.bash_profile,~/.profile, 或者~/.zshrc文件添加如下命令: shell

source ~/git/nvm/nvm.sh

從新打開你的終端, 輸入nvm npm

$ 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 鏡像下載: windows

$ NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/dist nvm install 0.11.11

因而你就會看到一段很是快速進度條: 瀏覽器

######################################################################## 100.0% Now using node v0.11.11

若是你不想每次都輸入環境變量NVM_NODEJS_ORG_MIRROR, 那麼我建議你加入到.bashrc文件中:

# nvm export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/dist source ~/git/nvm/nvm.sh

而後你能夠繼續很是方便地安裝各個版本的 node 了, 你能夠查看一下你當前已經安裝的版本:

$ nvm ls nvm v0.8.26 v0.10.26 v0.11.11 -> v0.11.12

windows 環境

git clone nvmw

直接從 github clone nvmw 到本地, 這裏假設你們都使用d:\git目錄存放 git 項目:

$ d: $ cd git $ git clone https://github.com/hakobera/nvmw.git

設置d:\git\nvmw目錄到你的PATH環境變量中:

set "PATH=d:\git\nvmw;%PATH%"

從新打開你的終端, 輸入nvmw

$ nvmw Usage: nvmw help Show this message nvmw install [version] Download and install a [version] nvmw uninstall [version] Uninstall a [version] nvmw use [version] Modify PATH to use [version] nvmw ls List installed versions Example: nvmw install v0.6.0 Install a specific version number nvmw use v0.6.0 Use the specific version

經過 nvmw 安裝任意版本的 node

nvmw 默認是從 http://nodejs.org/dist/ 下載的, 國外服務器, 必然很慢, 好在 nvmw 以及支持從鏡像服務器下載包, 因而咱們能夠方便地從七牛的 node dist 鏡像下載:

$ set "NVMW_NODEJS_ORG_MIRROR=https://npm.taobao.org/dist" $ nvmw install 0.11.11

因而你就會看到一段很是快速進度條:

######################################################################## 100.0% Now using node v0.11.11

若是你不想每次都輸入環境變量NVMW_NODEJS_ORG_MIRROR, 那麼我建議你在全局環境變量中增長它.

而後你能夠繼續很是方便地安裝各個版本的 node 了, 你能夠查看一下你當前已經安裝的版本:

$ nvmw ls v0.10.26 v0.11.12 Current: v0.11.12

到此, 不管是 windows 環境, 仍是 osx, linux 環境, 都能快速安裝多個版本的 node 了.

使用 cnpm 加速 npm

同理 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/dist install microtime

再次要提到 cnpm cli, 它已經默認將--registry和--disturl都配置好了, 誰用誰知道 . 寫到這裏, 就更快疑惑那些不想安裝 cnpm cli 又吐槽 npm 慢的同窗是基於什麼考慮不在本地安裝一個 cnpm 呢?

github 好慢

好了, 看到這裏你們應該對 node 和 npm 已經沒有速度慢的問題了.

github 慢, 或者說是它的資源 host 被堵而已, 你們能夠經過簡單的 hosts 映射解決:

185.31.16.184 github.global.ssl.fastly.net



錯誤:

npm ERR! Error: failed to fetch from registry: supervisor

npm config set registry http://registry.npmjs.org/  



npm安裝用代理也不錯。

npm config set proxy=http://127.0.0.1:8087

npm config set registry=http://registry.npmjs.org

相關文章
相關標籤/搜索