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