2

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

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

索引.tmpl:

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

但我宁愿有类似的东西:

if (TASK == 'release')
    var ownJsFile = grunt.config('uglify').dist.dest;
else
    var ownJsFile = grunt.config('concat').dev.dest;

但是如何获取TASK里面的模板呢?

4

1 回答 1

1

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

https://gist.github.com/sheenobu/5722360

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

于 2013-06-06T15:24:52.030 回答