【发布时间】:2015-07-14 02:17:59
【问题描述】:
既然我们可以使用各种解释器运行 JavaScript,比如 V8 或 Rhino,我认为应该有一种方法可以在终端中运行 CoffeeScript 代码。
从技术上讲,我可以通过在运行 javascript 时使用 Node.js 来做到这一点,但我很好奇是否有专门为 CoffeeScript 设计的独立解释器。
【问题讨论】:
既然我们可以使用各种解释器运行 JavaScript,比如 V8 或 Rhino,我认为应该有一种方法可以在终端中运行 CoffeeScript 代码。
从技术上讲,我可以通过在运行 javascript 时使用 Node.js 来做到这一点,但我很好奇是否有专门为 CoffeeScript 设计的独立解释器。
【问题讨论】:
简单地安装和运行 CoffeeScript 自带的解释器有什么问题?
在此处阅读指南的安装部分:http://jashkenas.github.com/coffee-script/#installation
然后像这样使用它:
或者我是否遗漏了您问题的某些方面?
【讨论】:
coffee 在幕后当然是这样做的。
没有。你可以使用coffee filename 启动一个coffeescript 文件,但这只会在RAM 中编译coffeescript 文件并将其作为javascript 运行。嗯,实际上有人为coffeescript 编写了一个解释器,但是该解释器是用javascript 或coffeescript 左右编写的,因此也必须在JS 引擎中运行。此外,它非常慢,因为它是解释器而不是 JIT 编译器。
正如我所说,只需使用coffee 命令。
【讨论】:
据我所知,只有一个 CoffeeScript 解释器不会将其编译为 JavaScript:Poetics。
它是用纯 Ruby 编写的,并直接在 Rubinius VM 上运行 CoffeeScript 代码。但是,它自 5 月以来一直没有更新,与官方的 CoffeeScript 实现相差甚远。
【讨论】:
如果您不想使用coffee 命令运行脚本,您可以随时在脚本顶部添加井号:
#!/usr/local/bin/coffee
只要将文件设置为可执行 (chmod +x foo.coffee),现在您无需在终端中指定 coffee 命令即可运行它:
$ ./foo.coffee
【讨论】:
#!/usr/bin/env node /path/to/coffee-script/bin/coffee,这有点讨厌。
#! shebang 功能需要一个实际的二进制可执行文件作为解释器;因为coffee 本身也是一个脚本,所以它不起作用。如果您可以向node 提供一组命令行选项,使其进入“咖啡模式”,您可以使用shebang 来做到这一点..
#!/usr/bin/env coffee 你必须使用 npm 全局安装 coffeescript cli
您不能直接将coffee 用作脚本解释器,因为它已经是一个脚本。但是你可以通过编写一个简单的 C 包装器来解决这个问题:
#include <unistd.h>
int main(int argc, char *argv[]) {
execvp("coffee", argv);
}
编译它并将它放在你的 PATH 某处(我称之为 klatsh),然后将 #!/usr/bin/env klatsh(或任何你称之为的)放在脚本的顶部,你就可以开始了。
【讨论】:
是的,只需使用:
$ coffee test.coffee
Output from coffee!
【讨论】: