使用脚本运行Coffeescript Interactive(REPL)

时间:2012-11-23 06:09:13

标签: coffeescript interactive read-eval-print-loop

在python中,我可以运行脚本并在该脚本的上下文中进入交互模式。这让我搞乱全局变量以及不检查程序状态的内容。

$ python -i hello.py

我可以用Coffeescript做到这一点吗?我尝试了以下内容:

$ coffee -i hello.coffee

不加载hello.coffee。这相当于咖啡-i

$ cat hello.coffee | coffee -i

在REPL中逐行运行脚本,但在EOF之后结束REPL。

3 个答案:

答案 0 :(得分:4)

我最近开始了一个项目,为Node和相关语言(如CoffeeScript)创建高级交互式shell。其中一个功能是在启动时在解释器的上下文中加载文件或字符串,其中考虑了加载的语言。

http://danielgtaylor.github.com/nesh/

示例:

# Load a string
nesh -c -e 'hello = (name) -> "Hello, #{name}"'

# Load a file
nesh -c -e hello.coffee

然后在解释器中,您可以访问hello函数。在bash中创建别名也是一个好主意:

alias cs='nesh -c'

答案 1 :(得分:1)

cat foo.coffee - | coffee -i

告诉cat首先输出你的代码,然后输出stdin,它会为你提供我想要的东西。

答案 2 :(得分:0)

我也遇到了这个问题。由@ int3提供的那个没有解决这个问题,因为CoffeeScript是一种基于缩进的语言。 stdin将逐行传递代码,但是repl不够聪明才能实现这一点。由于您发布此问题,我建议您在CoffeeScript

上创建一个问题(功能请求)