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

时间:2012-08-19 08:20:31

标签: coffeescript

我们可以使用命令:

将coffescript文件编译为js-file
  

coffee --join path / to / result.js --compile path / to / coffeescript_dir /

但是,如果我想编译一段coffeescript代码(作为文本)并获得一段js代码(也作为文本),它们不是文件。 例如:

  • cs text:"func = () -> 55"

  • js文字结果:"var func; func = function(){return 55;}"

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

1 个答案:

答案 0 :(得分:4)

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

$ coffee --print --bare -eval 'func = -> 55' 
var func;

func = function() {
  return 55;
};

要从Python调用它,您可以使用subprocess模块:

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