从命令行,如何将变量传递给coffeescript,所以它可以替换相应的占位符,如下所示:
$ echo "module.exports = {version: '$VERSION'}" | coffee -p -s VERSION=0.0.0
预期的JS:
(function() {
module.exports = {
version: '0.0.0'
};
}).call(this);
谢谢
答案 0 :(得分:3)
两件事:
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
$