Coffeescript编译:不是作为file2file,而是作为text2text

Coffeescript编译:不是作为file2file,而是作为text2text,coffeescript,Coffeescript,我们可以使用以下命令将coffescript文件编译为js文件: coffee--连接path/to/result.js--编译path/to/coffeescript\u dir/ 但如果我想编译一段coffeescript代码(作为文本)并获取一段js代码(也作为文本),而它们不是文件,该怎么办呢。 例如: cs文本:“func=()->55” js文本结果:“var func;func=function(){return 55;}” 它必须从控制台完成,或者更好地从python交互控制

我们可以使用以下命令将coffescript文件编译为js文件:

coffee--连接path/to/result.js--编译path/to/coffeescript\u dir/

但如果我想编译一段coffeescript代码(作为文本)并获取一段js代码(也作为文本),而它们不是文件,该怎么办呢。 例如:

  • cs文本:
    “func=()->55”

  • js文本结果:
    “var func;func=function(){return 55;}”

它必须从控制台完成,或者更好地从python交互控制台完成:)

您可以使用
--eval
将字符串参数作为coffee输入,
--bare
避免JS输出被包装在闭包中,以及
--print
在stdout而不是文件上打印输出:

$coffee--print--bare-eval'func=->55'
var func;
func=函数(){
返回55;
};
要从Python调用它,可以使用以下模块:

您可以使用
--eval
将字符串参数作为coffee输入,
--bare
避免JS输出被包装在闭包中,以及
--print
在stdout而不是文件上打印输出:

$coffee--print--bare-eval'func=->55'
var func;
func=函数(){
返回55;
};
要从Python调用它,可以使用以下模块:

from subprocess import Popen, PIPE
def compile_cs(cs_code):
    args = ['coffee', '--print', '--bare', '--eval', cs_code]
    return Popen(args, stdout=PIPE).communicate()[0]