8

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

$ python -i hello.py

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

$ coffee -i hello.coffee

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

$ cat hello.coffee | coffee -i

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

4

3 回答 3

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'
于 2013-04-04T04:11:35.553 回答
1

cat foo.coffee - | coffee -i

告诉 cat 首先输出您的代码,然后输出标准输入,这会给您我想要的内容。

于 2013-10-31T19:13:28.003 回答
0

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

于 2013-03-15T20:08:46.753 回答