有没有办法在终端中本地运行CoffeeScript?

时间:2011-11-24 17:07:16

标签: javascript coffeescript

由于我们可以使用各种解释器(如V8或Rhino)运行JavaScript,我认为应该有一种在终端内运行CoffeeScript代码的方法。

从技术上讲,我可以在运行javascript时使用Node.js来做到这一点,但我很好奇是否有专为CoffeeScript设计的独立解释器。

6 个答案:

答案 0 :(得分:9)

简单地安装和运行CoffeeScript自带的解释器有什么问题?

在此处阅读指南的安装部分:http://jashkenas.github.com/coffee-script/#installation

然后像这样使用它:

enter image description here

或者我错过了你问题的某些方面?

答案 1 :(得分:5)

没有。您可以使用coffee filename启动coffeescript文件,但这只会编译内存中的coffeescript文件并将其作为javascript运行。好吧,实际上有人确实为coffeescript编写了一个解释器,但是这个解释器是用javascript或coffeescript编写的,因此也必须在JS引擎内部运行。而且,它很慢,因为它是一个解释器而不是JIT编译器。

正如我所说,只需使用coffee命令。

答案 2 :(得分:4)

据我所知,只有一个CoffeeScript解释器无法将其编译为JavaScript:Poetics

它是用纯Ruby编写的,直接在Rubinius VM上运行CoffeeScript代码。但是,它自5月以来一直没有更新,它与官方的CoffeeScript实现完全相同。

答案 3 :(得分:3)

如果您不想使用coffee命令运行脚本,则始终可以在脚本顶部添加一个hashbang:

#!/usr/local/bin/coffee

只要文件设置为可执行(chmod +x foo.coffee),现在您可以在终端中指定coffee命令的情况下运行它:

$ ./foo.coffee

答案 4 :(得分:2)

您不能直接使用coffee作为脚本解释器,因为它已经是一个脚本。但是你可以通过编写一个简单的C包装器来解决这个问题:

#include <unistd.h>

int main(int argc, char *argv[]) {
    execvp("coffee", argv);
}

将其编译并将其放入PATH某处(我称之为klatsh),然后将#!/usr/bin/env klatsh(或任何你称之为的)放在脚本的顶部,这样你就可以了去。

答案 5 :(得分:1)

是的,只需使用:

$ coffee test.coffee 
Output from coffee!