Gruntjs grunt processhtml定义可变数量的文件
在产品投入生产之前,我用它来替换一些东西。诀窍是,我有一个可变数量的文件,这些文件是由我吐出来的,我真的想把我的数据与我的GrunFile分开。似乎我必须做一些事情来声明每个需要处理的文件:Gruntjs grunt processhtml定义可变数量的文件,gruntjs,assemble,Gruntjs,Assemble,在产品投入生产之前,我用它来替换一些东西。诀窍是,我有一个可变数量的文件,这些文件是由我吐出来的,我真的想把我的数据与我的GrunFile分开。似乎我必须做一些事情来声明每个需要处理的文件: processhtml: { deploy: { options: { process: true, }, files: { '/one_file.html': ['/one_file.html'],
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']
}
}
}
你可以想象,这可能会变得相当麻烦
我知道对于大多数特定于grunt的节点模块,您可以使用一些,所以我对此进行了修补
processhtml: {
deploy: {
options: {
process: true,
},
files: {
'/**.html': ['/**.html']
}
}
},
但这似乎也不起作用。。。有什么建议吗
编辑:添加更多背景信息(以防我因树木而失去森林)
问题
我的开发环境有几个主要目标
- 使用非压缩文件本地查看页面以进行调试(这适用于html、css和js)
- 能够在旅行时完全离线工作,并且经常没有互联网。这也会产生副作用,使页面重新加载更快。我在这方面遇到了一些问题,以及我为什么选择processhtml:
- 使用CDN提供jQuery之类的服务
- 谷歌字体:如果我引用谷歌字体,它会根据我的浏览器即时生成CSS。。。但是因为我的字体是本地安装的,所以我只想使用这些字体,所以我需要一种方法来保持谷歌字体的插入
- 我希望能够在部署之前压缩和连接每个资产
谢谢 在编写完成任务的方法,然后进一步检查手册后,我发现: 我的GrunFile配置包含如下内容,它的工作原理类似于一个符咒:
processhtml: {
deploy:{
options: {
process: true,
},
files: [
{
expand: true,
cwd: 'deploy/',
src: ['**/*.html'],
dest: 'deploy/',
ext: '.html'
},
],
}
counterbeing的解决方案很有魅力 @瓦莱里奥0999 要排除文件夹,请使用“!”“src”上的否定运算符
processhtml: {
deploy:{
options: {
process: true,
},
files: [
{
expand: true,
cwd: 'deploy/',
src: ['**/*.html', '!**/_includes/**'],
dest: 'deploy/',
ext: '.html'
},
],
}
如果您能与我们分享更多关于您在组装问题上的努力,我们可能会有一个更简单的解决方案,不需要使用其他任务。这一点很好!我也想知道。我将编辑我的问题,以包括更多的背景。太好了,谢谢你的额外信息。因此,grunt processhtml任务用于将对非精简资产(可能是多个链接或脚本标记)的引用替换为对精简资产的引用(在这种情况下,多个链接标记将替换为一个)。这就是要点吗?没错。尽管我认为指出这一点可能很重要,我也在使用它来替换一些离线的引用(特别是谷歌字体),而这些引用是在线部署的。一个简单的方法是,在生成所有文件的分区中进行替换,但这会在尝试脱机工作时产生问题。感谢提供更多详细信息,让我考虑一下,我想@doowb和我可以想出一些办法:-)在我看来,关于文件处理的咕哝文档非常糟糕。这个答案的关键是
expand:true
。这将采用src表达式,确定每个文件的路径,并设置相对于dest的目标路径。如果未指定目标,则文件将就地更新/替换。如何排除特定文件夹?我要排除的文件夹是“\u includes”,我想在配置此答案时添加此排除