我需要像这样的命令继承:
shell:
virtualenvActivate:
command: [
'. `command -v virtualenvwrapper.sh`'
'workon <%= pkg.name %>'
].join '&&'
pelican:
command: [
shell:virtualenvActivate # <-- THIS LINE
'pelican src/content/ -o dist/ -s publishconf.py'
].join '&&'
有可能吗?
答案 0 :(得分:0)
不幸的是,据我所知,CoffeeScript目前尚未实现YAML的anchor/reference功能。
我不知道Grunt,但一般来说,就目前而言,您可能需要在数据结构之外声明公共数据:
_my_command = [
'. `command -v virtualenvwrapper.sh`'
'workon <%= pkg.name %>'
].join '&&'
shell:
virtualenvActivate:
command: _my_command
pelican:
command: [
_my_command
'pelican src/content/ -o dist/ -s publishconf.py'
].join '&&'
对于更高级的用例,您可能会使用对象构造函数来获取(ab)之类的东西以获得所需的结果。 喜欢的东西可能是:
shell: new ->
@virtualenvActivate =
command: [
'. `command -v virtualenvwrapper.sh`'
'workon <%= pkg.name %>'
].join '&&'
@pelican =
command: [
console.log "A", this.virtualenvActivate
@virtualenvActivate.command
'pelican src/content/ -o dist/ -s publishconf.py'
].join '&&'
@
话虽如此,我不知道这是否是推荐的方式。