我想補充一點:
我用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