1

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

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

预期的JS:

(function() {

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

}).call(this);

谢谢

4

1 回答 1

3

两件事情:

  • 您需要VERSION在 echo 中定义,而不是在 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                                                              

$
于 2012-05-03T00:42:12.080 回答