在python中,我可以运行脚本并在该脚本的上下文中进入交互模式。这让我搞乱全局变量以及不检查程序状态的内容。
$ python -i hello.py
我可以用Coffeescript做到这一点吗?我尝试了以下内容:
$ coffee -i hello.coffee
不加载hello.coffee。这相当于咖啡-i
$ cat hello.coffee | coffee -i
在REPL中逐行运行脚本,但在EOF之后结束REPL。
答案 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
上创建一个问题(功能请求)