我想补充一点:
我用gulp-preprocess。这不仅适用于构建html,还适用于JavaScript,甚至可以用于PHP。 它具有简单的指令:
<!-- @include filename.extension -->
<!-- @ifdef foo -->
Included html if foo is defined
<!-- @endif -->
Also @ifndef (not defined)
Variables
<!-- @echo bar -->
Or even cooler:
<a href="<-- @echo linkvar -->">link</a>
Also (as far as I can tell) unlimited sub inclusion:
<!-- I am an included file -->
<!-- @include relative/to/me/data.html -->
我有一个目录树,像这样:
./project root
- build/
- less/
[less,..]
- html/
- index/
Index-variables.json
[Index-partials.html,...]
Index.html
[other-build-folders,..]
- dist
[htmlfiles,...,CSS folder,...]
对于每个呈现的HTML文件,我已经在build文件夹是文件中的相应文件和相应的文件夹名称。 构建文件监听相应文件夹中的更改并预处理该数据,然后将该数据输出到文件夹中的匹配文件。
由于预处理允许你传递变量作为一个上下文对象,我通过存储在父生成文件夹中的JSON文件,.e.g变量。 index-variables.json
,覆盖我定义的任何全局变量。
我将它与Livereload一起使用,因此结果是每当我在任何html部分中进行更改时,页面都会以呈现的html几乎立即重新加载 - 我们谈论的时间不到1秒。除了快速减轻外,预处理看起来非常稳定 - 我从来没有遇到过错误。
这是一种非常棒的工作方式。
啊。谢谢。这比Assemble的强大得多,但它会工作,直到Assemble允许他们的插件与Gulp一起使用。 – jthomas
我在想同样的事情jthomas,但是我刚刚注意到你在一年多以前发布了这个帖子,并且组装支持gulp依然不存在,所以我不会再持有我的呼吸......回到咕噜声。 – Chad
只是一个更新,我已经使用Swig JS模板引擎与gulp-swig插件。 – jthomas