2011-11-24 47 views
4

由于我们可以使用各种解释器(如V8或Rhino)运行JavaScript,因此我认为应该有办法在终端中运行CoffeeScript代码。有没有办法在终端本身运行CoffeeScript?

从技术上讲,我可以通过在运行JavaScript时使用Node.js来实现,但我很好奇是否有专门为CoffeeScript设计的独立解释器。

回答

5

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

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

4

据我所知,只有一个CoffeeScript解释器不能编译成JavaScript:Poetics

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

+0

我想我也看到了一个纯粹的JS一个对GH和咖啡邮件列表。 – thejh

9

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

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

,然后用它是这样的:

enter image description here

还是我失去了你的问题的某些方面?

+0

我相信提问者正在寻找一种运行CoffeeScript而不使用JS作为中间语言的方法,当然''咖啡'在后台执行。 –

2

如果你不想跑与coffee命令脚本,您可以在hashbang随时添加到脚本顶部:

#!/usr/local/bin/coffee 

只要将文件设置为可执行文件( chmod +x foo.coffee),现在你可以无需在终端指定的coffee命令运行它:

$ ./foo.coffee 
+0

这似乎没有实际的工作。它仍然由于某种原因被解释为bash。你能证实这对你有用吗?谢谢 – thebuckst0p

+1

这真的让我发疯 - 它不工作。为什么??我不知道。我找到的解决方案是说'#!/ usr/bin/env node/path/to/coffee-script/bin/coffee',这是一件令人讨厌的事情。 – flow

+0

它不适用于我..在Mac OS 10.9.2上运行 – JustGoscha

2

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

#include <unistd.h> 

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

编译,并把它放在你的PATH的地方(我把它叫做klatsh),然后把#!/usr/bin/env klatsh在顶部(或任何你叫它)您脚本,你很好去。

1

是,只需使用:

$ coffee test.coffee 
Output from coffee! 
相关问题