我希望将grunt-contrib-concat
用于应用程序前端HTML模板目的,这对我有用。
我想定义页面部分并将它们连接到一个将由把手编译的输出文件中。
我已经完成了所有设置,但是Concat不允许我多次使用同一个文件。
基本上,concat正在过滤来源,因此它们不会发生多次。第二个partial1.hbs
将不会连接。
pageconcat: {
src: [
'app/templates/partial1.hbs',
'app/templates/partial2.hbs',
'app/templates/partial1.hbs'
],
dest: 'app/result.hbs'
}
有没有办法做到这一点?
在使用grunt的控制台输出功能后,我能够调试(某种)concat插件。以下是我发现的内容:由于某种原因,输入数组由 grunt 进行重复数据删除。
重复数据删除发生在grunt使用的foreach文件循环中。我设法绕过了(见答案)。我不知道我的解决方案有多可靠,但它是一种解决方法,如果你没有输入错误的话,它会很有效。
答案 0 :(得分:0)
您可以使用文件数组格式设置两个不同的源集。像这样:
{
"files": [{
"src": [
"app/templates/partial1.hbs",
"app/templates/partial2.hbs"
],
"dest": "app/result.hbs"
}, {
"src": [
"app/result.hbs",
"app/templates/partial1.hbs"
],
"dest": "app/result.hbs"
}]
}
<小时/> 将“app / result.hbs”添加到第二个源集,正如评论中指出的那样。 感谢。
答案 1 :(得分:0)
经过一些调试后,我想出了一个解决方案。当然不是最好的,但它应该正常工作。
我通过以下方式编辑了node_modules文件夹中的 concat.js 插件文件:
grunt.registerMultiTask('concat', ...){
var self = this;
//several lines of code
//...
//replace f.src.filter(..) wtih
self.data.src.filter(..);
}