使用脚本运行Coffeescript Interactive(REPL)

使用脚本运行Coffeescript Interactive(REPL),coffeescript,interactive,read-eval-print-loop,Coffeescript,Interactive,Read Eval Print Loop,在python中,我可以运行脚本并在该脚本的上下文中进入交互模式。这让我无法处理全局变量和不检查程序状态的内容 $ python -i hello.py 我可以用咖啡脚本做这个吗?我尝试了以下方法: $ coffee -i hello.coffee 没装咖啡。这相当于咖啡——我喜欢 $ cat hello.coffee | coffee -i 在REPL中逐行运行脚本,但在EOF后结束REPL。我也遇到了这个问题。@int3提供的一个并不能解决这个问题,因为CoffeeScript是一种基

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

$ python -i hello.py
我可以用咖啡脚本做这个吗?我尝试了以下方法:

$ coffee -i hello.coffee
没装咖啡。这相当于咖啡——我喜欢

$ cat hello.coffee | coffee -i

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

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

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

例如:

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

# Load a file
nesh -c -e hello.coffee
然后在解释器中,您可以访问
hello
功能。在bash中创建别名也是一个好主意:

alias cs='nesh -c'

cat foo.coffee-| coffee-i


告诉cat先输出你的代码,然后输出stdin,我想这会给你你想要的东西。

From:Use
cat hello.coffee-| coffee
它不完全是你想要的,但是,将其作为一个模块编写,然后使用
require
以正常repl模式加载它怎么样?这是不使用coffeescript imo的唯一真正原因。您需要能够从脚本调用coffeescript repl。你可以使用源地图,但有点笨拙,这是相当整洁的。同样的问题是,它不解析多行语句,并且需要一个
进程.exit()
加上一个ctrl-c,但它仍然是一个有用的技巧来引导一些东西…这太棒了!谢谢你做的。