grunt在一个任务中更新选项,以便后续任务可以使用它们

时间:2014-01-24 17:23:50

标签: gruntjs version xmlpoke

我需要运行grunt-bump,以便在package.json中更新版本号,然后运行grunt-xmlpoke并使用新版本号更新配置文件。

所以我尝试了几件事。在grunt.initConfig内部运行碰撞,然后我运行xmlpoke。

1)xmlpoke需要grunt.file.readJSON('package.json').version

2)碰撞后我运行一个自定义任务,将新版本添加到grunt选项,xmlpoke的值为grunt.options("versionNumber")

在这两个版本中,xml结果都是预碰撞版本。因此xmlpoke在任务运行之前获取它的值,并在调用任务时使用它们。但是我需要它来获取前一个任务的结果值。

有没有这样做?

1 个答案:

答案 0 :(得分:2)

好的,我已经找到了一个明显的解决方案。

使用grunt-bump可以更新package.config,还可以更新通常在initConfig开头读入变量pkg的package.config。所以在你指定的碰撞任务的设置中

{
updateConfigs:['pkg']
}

然后在xmlpoke中我可以做

{ xpath:'myxpath', value:'blablabla/<%=pkg.version%>'}  

这是有效的。我以前做的是

{ xpath:'myxpath', value:'blablabla/' + grunt.options.versionNumber}

我在碰撞后的前一个任务中设置了versionnumber。或

{ xpath:'myxpath', value:'blablabla/'+ grunt.file.readJSON('package.json').version}

这些都没有奏效。我想我只是因为&lt;%=%&gt;而为了自己的利益而变得聪明。是从initConfig中访问参数的更常见和典型的方法。

无论如何,你有它。或者我拥有它。