NodeJS開發環境配置

"Node.js 是服務器端的 JavaScript 運行環境,它具備無阻塞(non-blocking)和事件驅動(event-driven)等的
特點,Node.js 採用 V8 引擎,一樣,Node.js 實現了相似 Apache 和 nginx 的web服務,讓你能夠經過它來
搭建基於 JavaScript 的 Web App"
javascript

API

http://nodeapi.ucdok.com/api/
http://nodejs.org/api/css

NPM

NPM是一個Node包管理和分發工具,已成爲了非官方的發佈Node模塊(包)的標準。有了NPM,能夠快速找到特定服務要使用的包,進行下載,安裝以及管理已經安裝的包。
https://www.npmjs.org/
https://www.npmjs.org/browse/starhtml

NPM經常使用命令
      (1)npm install moduleNames
               安裝Node模塊 
               若是在使用模塊的時候不知道其名字,能夠經過
http://search.npmjs.org網站按照索引值找到想要的模塊。npm也提供了查詢的功能,npm search indexName 安裝完畢後會產生一個node_modules目錄,其目錄下就是安裝的各個node模塊。node的安裝分爲全局模式和本地模式。通常狀況下會以本地模式運行,包會被安裝到和你的應用代碼統計的本地node_modules目錄下。在全局模式下,Node包會被安裝到Node的安裝目錄下的node_modules下。全局安裝命令爲npm install -gd moduleName (npm install -g express)獲知使用 npm set global=true來設定安裝模式,npm get global能夠查看當前使用的安裝模式。
      (2)npm view moduleNames
               查看node模塊的package.json文件夾
               注意事項:若是想要查看package.json文件夾下某個標籤的內容,可使用
               npm view moduleName labelName
      (3)npm list
               查看當前目錄下已安裝的node包
               注意事項:Node模塊搜索是從代碼執行的當前目錄開始的,搜索結果取決於當前使用的目錄中的node_modules下的內容。npm list parseable=true能夠目錄的形式來展示當前安裝的全部node包
      (4)npm help
               查看幫助命令
      (5)npm view moudleName dependencies
               查看包的依賴關係
      (6)npm view moduleName repository.url
               查看包的源文件地址
      (7)npm view moduleName engines
               查看包所依賴的Node的版本
      (8)npm help folders
               查看npm使用的全部文件夾
      (9)npm rebuild moduleName
               用於更改包內容後進行重建
      (10)npm outdated
               檢查包是否已通過時,此命令會列出全部已通過時的包,能夠及時進行包的更新
      (11)npm update moduleName
               更新node模塊
      (12)npm uninstall moudleName
               卸載node模塊
     
(13)一個npm包是包含了package.json的文件夾,package.json描述了這個文件夾的結構。
               訪問npm的json文件夾的方法以下:
               npm help json
               此命令會以默認的方式打開一個網頁,若是更改了默認打開程序則可能不會以網頁的形式打開。
      (14)發佈一個npm包的時候,須要檢驗某個包名是否已存在
               npm search packageName
      (15)不少時候咱們在使用一個npm包的時候常常會忘記了require其相互依賴的模塊,咱們能夠藉助如以下命令來,查看此模塊,相互依賴的包都有哪些
       更多命令請參看npm官方文檔
http://npmjs.org/doc/
國內NPM鏡像(更換國內鏡像)
npm config set strict-ssl false
npm config set registry
http://registry.cnpmjs.org
npm install express -g
http://registry.npm.taobao.org
http://npm.taobao.org/java

VS配置NodeJS環境

個人環境是VS2013 + nodejs + nodejstools
codeplex: 
https://nodejstools.codeplex.com
express:
https://github.com/visionmedia/express#quick-startnode

image

Express 錯誤(低版本)
doctype 5` is deprecated, you must now use `doctype html`
http://stackoverflow.com/questions/21102285/expressjs-node-app-running-errorlinux

DEMOnginx

var http = require('http');
var port = process.env.port || 1337;
//加載文件模塊
var fs=require('fs'); 
http.createServer(function (req, rep) {
    rep.writeHead(200, { 'Content-Type': 'text/plain' });
     fs.readFile('package.json','utf-8',function(err,data){ 
       if (err) {
           console.log(err);
       }else{  
         rep.write(data);
         rep.end('Hello World\n');
      }
     });
}).listen(port);
console.log('NodeJS Server running!');

Sublime Text配置

Sublime Text 3 : http://www.sublimetext.com/3
安裝插件管理器
菜單 View > Show Console 調出命令行工具粘貼回車
c++

import urllib.request,os,hashlib; h = '7183a2d3e96f11eeadd761d777e62404' + 'e330c659d4bb41d3bdf022e94cab3cd0'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)git

安裝插件
快捷鍵Ctrl + Shift + P 輸入install,選擇Install Package回車,而後輸入nodejs選擇 NodeJs 安裝
經常使用的插件
https://sublime.wbond.net/packages/jQuery
https://sublime.wbond.net/packages/ConvertToUTF8
https://sublime.wbond.net/packages/Pretty%20JSON
https://sublime.wbond.net/packages/SublimeGit
https://sublime.wbond.net/packages/Nodejsgithub

Ctrl+b 運行!

CentOS下配置開發環境

環境
CentOS 6.5 X64 min
下載安裝
#yum update
#yum install wget
#wget http://nodejs.org/dist/v0.10.26/node-v0.10.26-linux-x64.tar.gz
#tar zxvf node-v0.10.26-linux-x64.tar.gz
配置環境變量
#vi /etc/profile
輸入
#set nodejs env
export NODE_HOME=/opt/node-v0.10.26-linux-x64
export PATH=$NODE_HOME/bin:$PATH
export NODE_PATH=$NODE_HOME/lib/node_modules:$PATH
保存退出
#:wq
重啓生效
#source /etc/profile
檢查是否安裝成功
#node -v
#npm -v
源碼配置編譯安裝
yum -y install wget libtool automake autoconf gcc make gcc-c++ openssl-devel
wget http://nodejs.org/dist/v0.10.26/node-v0.10.26.tar.gz
#tar zxvf node-v0.10.26.tar.gz
#cd /opt/node-v0.10.26
#./configure --prefix=/opt/node/v0.10.26
5分鐘左右
#make && make install
配置環境變量
#vi /etc/profile
輸入
#set nodejs env
export NODE_HOME=/opt/node/v0.10.26
export PATH=$NODE_HOME/bin:$PATH
export NODE_PATH=$NODE_HOME/lib/node_modules:$PATH
重啓生效
#source /etc/profile
檢查是否安裝成功
#node -v
#npm -v
yum源安裝
https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager
yum install nodejs npm --enablerepo=epel

#安裝Express (已經升級,坑爹,折騰了我一夜)
#npm install -gb express
express 已經把命令行工具分離出來了...
若是你要 Express 3
sudo npm install -g express-generator@3
express 4 的話
sudo npm install -g express-generator

Usage: express [options]
Options:
  -h, --help          output usage information
  -V, --version       output the version number
  -e, --ejs           add ejs engine support (defaults to jade)
  -H, --hogan         add hogan.js engine support
  -c, --css   add stylesheet  support (less|stylus) (defaults to plain css)
  -f, --force         force on non-empty directory
http://expressjs.com/guide.htm

Last login: Fri Apr 11 00:32:36 2014 from 192.168.0.104 
[root@localhost ~]# vi /etc/profile 
# /etc/profile 
# System wide environment and startup programs, for login setup 
# Functions and aliases go in /etc/bashrc 
# It's NOT a good idea to change this file unless you know what you 
# are doing. It's much better to create a custom.sh shell script in 
# /etc/profile.d/ to make custom changes to your environment, as this 
# will prevent the need for merging in future updates. 
#set nodejs env 
export NODE_HOME=/opt/node/v0.10.26 
export PATH=$NODE_HOME/bin:$PATH 
export NODE_PATH=$NODE_HOME/lib/node_modules:$PATH 
pathmunge () { 
    case ":${PATH}:" in 
        *:"$1":*) 
            ;; 
        *) 
            if [ "$2" = "after" ] ; then 
                PATH=$PATH:$1 
            else 
                PATH=$1:$PATH 
"/etc/profile" 82L, 1932C written 
[root@localhost ~]# ls 
anaconda-ks.cfg  install.log  install.log.syslog 
[root@localhost ~]# source /etc/profile 
[root@localhost ~]# source /etc/profile 
[root@localhost ~]# node -v 
v0.10.26 
[root@localhost ~]# npm -v 
1.4.3 
[root@localhost ~]# npm install -g express-generator 
npm http GET https://registry.npmjs.org/express-generator 
npm http 200 https://registry.npmjs.org/express-generator 
npm http GET https://registry.npmjs.org/express-generator/-/express-generator-4.0.0.tgz 
npm http 200 https://registry.npmjs.org/express-generator/-/express-generator-4.0.0.tgz 
npm http GET https://registry.npmjs.org/commander/1.3.2 
npm http GET https://registry.npmjs.org/mkdirp/0.3.5 
npm http 200 https://registry.npmjs.org/commander/1.3.2 
npm http GET https://registry.npmjs.org/commander/-/commander-1.3.2.tgz 
npm http 200 https://registry.npmjs.org/mkdirp/0.3.5 
npm http GET https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz 
npm http 200 https://registry.npmjs.org/commander/-/commander-1.3.2.tgz 
npm http 200 https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz 
npm http GET https://registry.npmjs.org/keypress 
npm http 200 https://registry.npmjs.org/keypress 
npm http GET https://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz 
npm http 200 https://registry.npmjs.org/keypress/-/keypress-0.1.0.tgz 
/opt/node/v0.10.26/bin/express -> /opt/node/v0.10.26/lib/node_modules/express-generator/bin/express 
express-generator@4.0.0 /opt/node/v0.10.26/lib/node_modules/express-generator 
忖?mkdirp@0.3.5?commander@1.3.2 (keypress@0.1.0) 
[root@localhost opt]# express app -e 
   create : app 
   create : app/package.json 
   create : app/app.js 
   create : app/public 
   create : app/public/javascripts 
   create : app/public/images 
   create : app/public/stylesheets 
   create : app/public/stylesheets/style.css 
   create : app/routes 
   create : app/routes/index.js 
   create : app/routes/users.js 
   create : app/views 
   create : app/views/index.ejs 
   create : app/views/error.ejs 
   create : app/bin 
   create : app/bin/www 
   install dependencies: 
     $cd app && npm install 
   run the app: 
     $DEBUG=my-application ./bin/www 
[root@localhost ~]# express -V 
4.0.0 
[root@localhost opt]# cd app/ 
[root@localhost app]# npm install

關閉防火牆
#service iptables stop
永久關閉防火牆
#chkconfig iptables off
查看防火牆關閉狀態
#service iptables status

1)永久性生效,重啓後不會復原
開啓: chkconfig iptables on
關閉: chkconfig iptables off
編譯配環境變量
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
#service network restart
#yum install yum-fastestmirror
#yum clean all
#yum update
2)即時生效,重啓後復原
開啓: service iptables start
關閉: service iptables stop

開啓Node服務
express 4 默認生成的代碼 app.js貌似沒有監聽端口,已經放在./bin/www中

#!/usr/bin/env node
var debug = require('debug')('my-application');
var app = require('../app');
app.set('port', process.env.PORT || 3000);
var server = app.listen(app.get('port'), function() {
  debug('Express server listening on port ' + server.address().port);
});

#node node ./bin/www

IntelliJ IDEA 中環境配置

安裝插件  http://www.jetbrains.com/idea/features/nodejs.html
檢查環境變量

image

調試選項

目錄結構

調試程序

WebStorm(與IDEA差很少,沒有深刻研究)

image

Eclipse配置NodeJS開發環境

安裝nodeclipse插件(選擇須要的包)
http://www.nodeclipse.org/updates/
google V8調試插件(可能須要牆)
http://chromedevtools.googlecode.com/svn/update/dev/
查看Node配置信息

新建Express項目(就是默認的版本過低了,4.x API 與目錄結構都變了)

Debug調試

更新:

2014年4月4日  發佈 NTVS 1.0 Beta 貌似不能斷點調試,已經切換回老版本

2014年4月7日  使用 Sublime Text 很好用

2014年4月10日 使用了幾天,仍是把開發環境搬到Liunx來了,環境CentOS6.5 + Gedit + Sublime Text + Firefox

2014年4月23日 使用 IntelliJ IDEA 很是好用

2014年4月24日 使用 Eclipse配置NodeJS開發環境 缺點Express版本低,IDEA新建項目能夠手動選擇版本

Refer:
http://nodejstools.codeplex.com/documentation
http://www.hanselman.com/blog/IntroducingNodejsToolsForVisualStudio.aspx
NPM registry 管理工具
http://cnodejs.org/topic/5326e78c434e04172c006826
快速搭建 Node.js 開發環境以及加速 npm
http://cnodejs.org/topic/5338c5db7cbade005b023c98
阿里雲主機Nginx下配置NodeJS、Express和Forever
http://cnodejs.org/topic/5059ce39fd37ea6b2f07e1a3
加快npm的下載速度
http://cnodejs.org/topic/53330242edf0031c2c00ca81
請教,Nodejs 開發,用神馬IDE呢?
http://cnodejs.org/topic/4f32389669bab4d6760389c7#53929c94c3ee0b5820352451

相關文章
相關標籤/搜索