将变量传递给coffeescript

时间:2012-05-03 00:34:32

标签: coffeescript

从命令行,如何将变量传递给coffeescript,所以它可以替换相应的占位符,如下所示:

$ echo "module.exports = {version: '$VERSION'}" | coffee -p -s VERSION=0.0.0

预期的JS:

(function() {

  module.exports = {
    version: '0.0.0'
  };

}).call(this);

谢谢

1 个答案:

答案 0 :(得分:3)

两件事:

  • 您需要在echo中定义VERSION,而不是在coffeescript编译器中定义;当coffeescript编译器看到它已经将$VERSION翻译成''时。
  • echo是内置的shell,因此标准VERSION=0.0.0 echo "$VERSION"构造不起作用。

所以你想要创建一个新的子shell,这样VERSION的设置就不会传播到你的主shell中,然后执行echo和coffee,如下所示:

$ (VERSION=0.0.0; echo "module.exports = {version: '$VERSION'}" | coffee -ps)       
(function() {

  module.exports = {
    version: '0.0.0'
  };

}).call(this);

表达式周围的括号停止设置VERSION:

$ echo $VERSION                                                              

$