【问题标题】:pass variable to coffeescript将变量传递给咖啡脚本
【发布时间】:2012-05-03 10:01:21
【问题描述】:

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

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

预期的 JS:

(function() {

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

}).call(this);

谢谢

【问题讨论】:

  • CoffeeScript 本身不会为您做到这一点。 This question 讨论了可以在 coffee 之前或之后运行的预处理器。

标签: coffeescript


【解决方案1】:

两件事:

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

$

【讨论】:

  • 好吧,我的例子可能太简单了......你的技巧很有效,但它更像是一个外壳而不是一个咖啡。如果我想编译整个文件夹怎么办:coffee -c -o lib/ src/ 但使用VERSION=0.0.0 所以$VERSION 占位符被替换为src/ 中的某处?谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-11
  • 1970-01-01
  • 2013-01-09
  • 2017-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多