Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有一种方法可以在终端本地运行CoffeeScript?_Javascript_Coffeescript - Fatal编程技术网

Javascript 有没有一种方法可以在终端本地运行CoffeeScript?

Javascript 有没有一种方法可以在终端本地运行CoffeeScript?,javascript,coffeescript,Javascript,Coffeescript,因为我们可以使用各种解释器运行JavaScript,比如V8或Rhino,所以我认为应该有一种在终端内部运行CoffeeScript代码的方法 从技术上讲,我可以通过在运行javascript时使用Node.js来实现这一点,但我很好奇是否有专门为CoffeeScript设计的独立解释器。否。您可以使用CoffeeScript文件名启动CoffeeScript文件,但这只会在RAM中编译CoffeeScript文件并将其作为javascript运行。事实上,确实有人为coffeescript编写

因为我们可以使用各种解释器运行JavaScript,比如V8或Rhino,所以我认为应该有一种在终端内部运行CoffeeScript代码的方法


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

否。您可以使用
CoffeeScript文件名启动CoffeeScript文件,但这只会在RAM中编译CoffeeScript文件并将其作为javascript运行。事实上,确实有人为coffeescript编写了一个解释器,但这个解释器是用javascript或coffeescript编写的,因此也必须在JS引擎中运行。而且,它非常慢,因为它是一个解释器,而不是JIT编译器


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

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


它是用纯Ruby编写的,直接在Rubinius VM上运行CoffeeScript代码。但是,自5月份以来,它就没有更新过,而且它与官方的CoffeeScript实现相差甚远。

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

请在此处阅读指南的安装部分:

然后像这样使用它:


还是我遗漏了您问题的某些方面?

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

#!/usr/local/bin/coffee
只要文件设置为可执行(
chmod+x foo.coffee
),现在您就可以运行它,而无需在终端中指定
coffee
命令:

$ ./foo.coffee

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

#include <unistd.h>

int main(int argc, char *argv[]) {
    execvp("coffee", argv);
}
#包括
int main(int argc,char*argv[]){
execvp(“咖啡”,argv);
}
编译它并把它放在你的路径中的某个地方(我称之为
klatsh
),然后把它放在
#/usr/bin/env klatsh(或您称之为的任何名称)位于脚本顶部,您就可以开始了。

是的,只需使用:

$ coffee test.coffee 
Output from coffee!

我想我在GH和coffee邮件列表上也看到过纯JS的。我相信发问者正在寻找一种不使用JS作为中间语言运行CoffeeScript的方法,当然,
coffee
在幕后是这样做的。这似乎实际上不起作用。出于某种原因,它仍然被解释为bash。你能确认这对你有用吗?谢谢这真的让我发疯了这不是工作。为什么?我不知道。我找到的解决办法是说
#/usr/bin/env node/path/to/coffee script/bin/coffee
,这有点讨厌。它对我也不起作用。。在Mac OS 10.9.2上运行
#
shebang特性需要一个实际的二进制可执行文件作为解释器;因为
咖啡
本身也是一个脚本,所以它无法工作。如果有一组命令行选项可以提供给
节点
,使其进入“咖啡模式”,则可以使用shebang..Use:
#/usr/bin/env coffee
您必须使用npm全局安装coffeescript cli