在 python 中,我可以运行一个脚本并在该脚本的上下文中进入交互模式。这让我弄乱了全局变量以及不检查程序状态的内容。
$ python -i hello.py
我可以用 Coffeescript 做到这一点吗?我尝试了以下方法:
$ coffee -i hello.coffee
不加载 hello.coffee。相当于咖啡 -i
$ cat hello.coffee | coffee -i
在 REPL 中逐行运行脚本,但在 EOF 之后结束 REPL。
在 python 中,我可以运行一个脚本并在该脚本的上下文中进入交互模式。这让我弄乱了全局变量以及不检查程序状态的内容。
$ python -i hello.py
我可以用 Coffeescript 做到这一点吗?我尝试了以下方法:
$ coffee -i hello.coffee
不加载 hello.coffee。相当于咖啡 -i
$ cat hello.coffee | coffee -i
在 REPL 中逐行运行脚本,但在 EOF 之后结束 REPL。
我最近开始了一个项目,为 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'
cat foo.coffee - | coffee -i
告诉 cat 首先输出您的代码,然后输出标准输入,这会给您我想要的内容。
我也面临这个问题。@int3 提供的并没有解决这个问题,因为 CoffeeScript 是一种基于缩进的语言。stdin 将逐行传递代码,但 repl 不够聪明,无法实现这一点。既然您发布了这个问题,我建议您在CoffeeScript上创建一个问题(功能请求)