我正在使用grunt-processhtml在生产之前更换一些东西。诀窍是,我有assemble吐出的可变数量的文件,我真的想把我的数据与我的gruntfile分开。我似乎必须做一些事情来声明需要操作的每个文件:
processhtml: {
deploy: {
options: {
process: true,
},
files: {
'/one_file.html': ['/one_file.html'],
'/two_file.html': ['/two_file.html'],
'/red_file.html': ['/red_file.html'],
'/blue_file.html': ['/blue_file.html']
}
}
}
你可以想象,这可能会非常繁琐。
我知道,对于大多数特定的grount节点模块,你可以使用一些globbing techniques,所以我修改了它。
processhtml: {
deploy: {
options: {
process: true,
},
files: {
'/**.html': ['/**.html']
}
}
},
但这似乎也不起作用......有什么建议吗?
我的开发环境有几个主要目标。
所以,现在我将告诉你我设计的系统。我的项目中有三个顶级目录,其中存在三个不同的阶段
src:这是所有汇编文件都存在的地方。在这里,我有大量的hbs文件和部分,因此保持我的标记干燥,我的最小数据在YAML(我喜欢,因为我可以让同事填写它)。
dev:一旦文件被“汇编”,它们就会在这个目录中结束。这里它们是未压缩的,带有livereload的连接服务器从这里运行。
部署:此时,我有一个名为'preflight'的繁琐任务,它压缩了我的所有文件,摆脱了任何残余,留下了一个超级流畅的精简文件夹准备好另一个rsync任务发送它达到生产。
无论如何,如果你有不同的方法来实现这一目标。我很乐意听到它:)
谢谢!
答案 0 :(得分:13)
在编写完成任务的方法,然后进一步检查手册之后,我发现了这个:
http://gruntjs.com/configuring-tasks#building-the-files-object-dynamically
我的Gruntfile配置包含看起来像这样的东西,它就像一个魅力:
processhtml: {
deploy:{
options: {
process: true,
},
files: [
{
expand: true,
cwd: 'deploy/',
src: ['**/*.html'],
dest: 'deploy/',
ext: '.html'
},
],
}
答案 1 :(得分:1)
counterbeing的解决方案就像一个魅力!
@ valerio0999 排除文件夹使用'!' “src”上的否定运算符
processhtml: {
deploy:{
options: {
process: true,
},
files: [
{
expand: true,
cwd: 'deploy/',
src: ['**/*.html', '!**/_includes/**'],
dest: 'deploy/',
ext: '.html'
},
],
}