由于我们可以使用各种解释器(如V8或Rhino)运行JavaScript,我认为应该有一种在终端内运行CoffeeScript代码的方法。
从技术上讲,我可以在运行javascript时使用Node.js来做到这一点,但我很好奇是否有专为CoffeeScript设计的独立解释器。
答案 0 :(得分:9)
简单地安装和运行CoffeeScript自带的解释器有什么问题?
在此处阅读指南的安装部分:http://jashkenas.github.com/coffee-script/#installation
然后像这样使用它:
或者我错过了你问题的某些方面?
答案 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!