我正在使用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']
}
}
}
正如您可以想象的那样,这可能会变得非常麻烦。
我知道对于大多数 grunt 特定的节点模块,您可以使用一些globbing 技术,所以我对此进行了修改。
processhtml: {
deploy: {
options: {
process: true,
},
files: {
'/**.html': ['/**.html']
}
}
},
但这似乎也不起作用......有什么建议吗?
编辑:添加更多背景信息(以防我因树木而失去森林)
问题
我的开发环境有几个主要目标。
- 使用非压缩文件在本地查看页面以进行调试(这适用于 html、css 和 js)
- 我旅行时完全离线工作的能力,而且经常没有互联网。这也可能具有使页面重新加载更快的副作用。我遇到的一些问题,以及我为什么来到 processhtml:
- 使用 CDN 来提供 jQuery 之类的东西。
- 谷歌字体:如果我引用谷歌字体,它会根据我的浏览器在现场生成 CSS ......但由于我在本地安装了我正在开发的字体,我只想使用这些,所以我需要一种插入谷歌字体的方法。
- 我希望能够在部署之前压缩和连接每一个资产。
我是怎么做的(无论好坏)
所以,现在我将告诉你我设计的系统。我的项目中有三个顶级目录,三个不同的阶段都在其中
src:这是我所有的汇编文件所在的地方。在这里,我有大量的 hbs 文件和部分文件,从而保持我的标记干燥,以及我在 YAML 中的最小数据(我喜欢,因为我可以让同事填写它)。
dev:一旦文件被“组装”起来,它们就会出现在这个目录中。在这里它们是未压缩的,并且带有 livereload 的连接服务器从这里运行。
deploy:此时,我有一个名为“preflight”的繁重任务,它将我所有的文件压缩下来,并摆脱任何杂物,留下一个超级流畅的流线型文件夹,为另一个 rsync 任务发送到生产环境做好准备。
无论如何,如果你有不同的方法来实现这一点。我很想听听:)
谢谢!