Javascript 如何在grunt.tmpl文件中查找当前构建任务

Javascript 如何在grunt.tmpl文件中查找当前构建任务,javascript,build,task,gruntjs,Javascript,Build,Task,Gruntjs,我使用grunt.template.process()从index.tmpl文件组装了一个index.html文件 现在,我基本上有两个不同的构建:开发构建(未统一)和发布构建(缩小)。基于我通过grunt-devel或grunt-release传递给grunt的任务,我想更改要在index.tmpl中内联的脚本。现在,我手动操作,并根据需要取消注释相应的行 index.tmpl: <% var ownJsFile = grunt.config('uglify').dist.dest; /

我使用grunt.template.process()从index.tmpl文件组装了一个index.html文件

现在,我基本上有两个不同的构建:开发构建(未统一)和发布构建(缩小)。基于我通过
grunt-devel
grunt-release
传递给grunt的任务,我想更改要在index.tmpl中内联的脚本。现在,我手动操作,并根据需要取消注释相应的行

index.tmpl:

<%
var ownJsFile = grunt.config('uglify').dist.dest;
//var ownJsFile = grunt.config('concat').dev.dest;
...
%>

但是如何在模板内部获取任务呢?

您可以将任意数据传递给grunt.template.process(模板,{data:…})。例如,可以使用grunt.task.current.name注入任务名称。以下是一个例子:


任务是否在release task和devel task下注册了两次并不重要,只要我们不重复自己。也就是说,将模板行为绑定到任务名称并不是最好的。相反,您可以将minify=true或uglify=true传递给grunt.template.process。

如果项目是开源的,您可以共享到回购任务的链接吗?或者只是共享GrunFile/tasks中的更多代码?如果我理解正确的话,你可能会把事情弄得太复杂了。但是更多的细节可能会有用。分条Grunfile.js:正如您所看到的,我使用两个模板,
index slim.tmpl
index fat.tmpl
,它们使用concat或uglified.js文件进行内联。我只希望有一个index.tmpl文件,在这里我可以通过if/else结构访问任务(
release slim
release fat
),我在UAT和Prod中保持一个文本文件在同一位置,但这类变量的值不同。
if (TASK == 'release')
    var ownJsFile = grunt.config('uglify').dist.dest;
else
    var ownJsFile = grunt.config('concat').dev.dest;