Javascript 如何在grunt.tmpl文件中查找当前构建任务
我使用grunt.template.process()从index.tmpl文件组装了一个index.html文件 现在,我基本上有两个不同的构建:开发构建(未统一)和发布构建(缩小)。基于我通过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-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;