Back

把 javascript转换成coffee 的工具: js2.coffee

发布时间: 2015-02-21 07:58:00

refer to:  http://js2.coffee/

介绍说可以把 "simple js" 转换成 coffee. 咱们试试这个simple的度在哪里. 如果能直接转换的话就最好了.

记得几个要点: 

1. 全局变量的话,要使用 @global_var 来声明. 否则 coffee 会为你加上 var global_var. 如果它 编译后的文件被其他文件 eval() 调用,则 就不再是 global var了.

2. 如果是在Alloy / Titanium 或者其他框架中, 如果该框架专门对Global 变量做了安排, 那么,就需要在使用js2coffee之前, 先把js中的所有 全部变量, 以 Global 这样的形式来声明.例如:

// 原来的js:  
var temp = 1      //使用了 var , 就是临时变量, 或者仅仅在当前scope下产生作用.
global_var = 3   // 如果没使用var ,就是全局变量. 

// 修改成:
var temp = 1
Alloy.Globals.global_var = 3

3. 使用 js2coffee 命令:

# 安装 js2coffee
$ npm install -g js2coffee

# --verbose 表示输出详细信息,包括警告等.
# -- indent 4 表示用4个空格作为缩进
$ js2coffee 3_xiangji.js --verbose --indent 4  > 3_xiangji.coffee  

下面是一些警告级别的日志, 可以根据这个来修改生成的coffee.
3_xiangji.js:106:4: [warning] Assignment of global variable 'pic_menu_bool'
3_xiangji.js:111:4: [warning] Assignment of global variable 'pic_menu_bool'

注意: 使用的时候,它会自动把for 循环的最后一行加上return . 我们务必把这个return 去掉。 否则循环只能执行一次。 见:http://siwei.me/blog/posts/coffeescript-implicit-return-return

Back