当前位置:编程学习 > JS >>

Node.js集成开发环境Cloud9搭建及CoffeeScript插件使用

Node.js是神马?简单来说,它是实现JavaScript在本地运行的一个框架,包括一个js语言解释器(V8)和一些类库。有了它,就可以使用js语言开发一些本地的应用,使js脱离浏览器的束缚。
Node.js使用的语言解释器与google chrome 浏览器用的是同一个高效的开源引擎-V8。
关于Node.js的入门教程可以参考这本书:"Node入门» 一本全面的Node.js教程",在线地址 http://www.nodebeginner.org/index-zh-cn.html
对于Node.js的开发,除了使用传统的文本编辑工具如Notepad++,vim,还有一款开源的IDE可用,这就是Cloud9 IDE
官方网站:http://c9.io/
这个开发环境的独特之处就是直接使用浏览器在云端完成开发工作,不用在本地安装node啊之类的东东,
不过使用官方的网站有一些限制,比如只对开源的项目免费,不支持第三方扩展啊等等。
本篇文章要讲的是如何在ubuntu 10.10上搭建Cloud9 IDE。
首先说明,Cloud9(版本是0.6),基于node 0.4.2版本构建,虽然目前的node(版本0.6.14)支持windows,但很多类库对window的支持还不完善,
所以还是在linux上搭建会比较顺利。
首先安装git,直接使用
[plain]
sudo apt-get install git 
然后安装nodejs,使用
[plain]
sudo apt-get install nodejs 
安装 npm,使用
[plain]
sudo curl http://npmjs.org/install.sh | sh 
然后在用户目录下新建一个文件夹:
[plain]
mkdir cloud9 
在cloud9内执行
[plain]
git clone git://github.com/ajaxorg/cloud9.git 
更文艺一点的做法:
[plain]
git init 
git remote add origin git://github.com/ajaxorg/cloud9.git 
git fetch master 
git checkout master 
然后执行
[plain]
bin/cloud9.sh 
初次执行,会下载一堆submodule,如果不幸中间网络中断了,可以使用
[plain]
git submodule update 
下载完后会对这些submodule进行编译,可能会遇到libxml package prinstall Failed 的问题,
使用命令:
[plain]
sudo apt-get install libxml2-dev 
最终成功后,会显示如下图: 

 cloud9命令行


并自动启动浏览器,打开127.0.0.1:3000,进入IDE界面
cloud9.sh是可以带参数的,具体可使用 cloud9.sh --help查看用法

[sql]
Show this help message 
    --help 
Load the configuration from a config file. Overrides command-line options. Defau 
lt: <null> 
    -c, --config <value> 
Run child processes with a specific group. Default: <false> 
    -g, --group <value> 
Run child processes as a specific user. Default: <false> 
    -u, --user <value> 
Activate debug-mode. Default: <false> 
    -d, --debug 
Disable auto-open of the browser. 
    -s, --silent 
Define an action to execute after the Cloud9 server is started. Default: <null> 
    -a, --action <value> 
IP address where Cloud9 will serve from. Default: <127.0.0.1> 
    -l, --ip <value> 
Port number where Cloud9 will serve from. Default: <3000> 
    -p, --port <value> 
Path to the workspace that will be loaded in Cloud9 (may be relative or absolute 
). Default: <.> 
    -w, --workspace <value> 

我使用的命令行:
bin/cloud9.sh -l 192.168.37.130 -w ../mynode/ -s
具体意思就是指定一个固定ip,指定工作目录,不自动启动浏览器
启动成功后,就可以通过其他机器来访问这个网站了,效果图: 


 coud9网站


快捷键:Ctrl+数字可以切换编辑器中的文件,Ctrl+s保存文件,Ctrl+F5是debug,Shift+F5是stop,可以在preferences中设置vim mode使用vim方式编辑源码(大爱啊)等等,最下面的命令行窗口可以执行一些服务器端的命令如ls,git等,方便源代码管理

 


使用CoffeeScript:
JS使用的是类C/Java的语法风格,CoffeeScript则采用了类似Ruby/Python的语法,
使脚本的编写工作灵活有趣,减少代码量等等,好处很多,
关于CoffeeScript,这本书值得一看(只有142页):
《CoffeeScript: Accelerated JavaScript Development》网址:http://pragprog.com/book/tbcoffee/coffeescript


在项目中使用Coffee很方便,
首先使用npm安装CoffeeScript:npm install -g coffee-script
然后在项目目录下执行npm link coffee-script
新建一个coffee后缀的脚本文件test.coffee
内容:[javascript] hi = -> 
    arr = [1..3] 
    last = x for x in arr 
    console.log "#{last}" 
module.exports.hi = hi 
hi = ->
    arr = [1..3]
    last = x for x in arr
    console.log "#{last}"
module.exports.hi = hi


再新建个runner.js,内容:
[javascript] require("coffee-script"); 
var test = require("./test"); 
test.hi(); 
require("coffee-script");
var test = require("./test");
test.hi();
直接调试runner.js即可。


在cloud9中集成livecoffee插件:
首先到用户目录下执行:
[plain]  nickwar@ubuntu:~$ git clone git://github.com/tanepiper/cloud9-livecoffee-ext.git cloud9/client/ext/livecoffee 
nickwar@ubuntu:~$ git clone git://github.com/tanepiper/cloud9-livecoffee-ext.git cloud9/client/ext/livecoffee

然后在界面中的Windows->Extension Manager->User Extensions中输入"ext/livecoffee/livecoffee",点Add,即可加入此插件

  ExtensionManager


 ExtMgrWindow


打开coffee文件后,选择Edit->LiveCoffee即可显示对应的js代码窗口

  LiveCoffeeWindow


在windows7上执行cloud9的话,需要自行下载node-builds文件夹到support中,代码地址:https://github.com/ajaxorg/node-builds
不过socket.io貌似出现问题,暂未成功。。。。。
报错信息:
uncaught exception:
TypeError: Object #<a Server> has no method 'once'
    at new Manager (/cygdrive/d/Program Files/Cloude9/cloud9/support/socket.io/l
ib/manager.js:123:10)
    at Object.listen (/cygdrive/d/Program Files/Cloude9/cloud9/support/socket.io
/lib/socket.io.js:71:10)



 摘自  NickWar的专栏 

补充:web前端 , JavaScript ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,