當前位置:
首頁 > 最新 > nodejs 的模板引擎選擇

nodejs 的模板引擎選擇

最近想寫一個專題頁工具,因為我們比較多專題頁,但專題頁又大多數差不多,因而想寫個工具來根據 數據+模板 生成對應的專題頁,提高開發效率。

最開始的想法是分析目前模板頁的共性,然後寫一個可視化的專題頁編輯工具,就是類似各種在線製作 h5 的那種工具。但是這個開發成本會比較高,周期也會比較長,投入和產出的性比價不是很高。

昨晚在瀏覽網頁時,無意看到了模板引擎 pug(就是原來的 jade,作者創新改了個名字)。大概瀏覽了下 pug 的文檔,發現它支持 API 編程。然後就有了新的思路:通過 node+模板引擎,根據數據和專題頁模板來生成專題頁。這個思路比之前的會簡單很多,開發成本和周期都會更低。

既然是寫一個基於 node 模板引擎的 cli 工具,首先要選擇合適的模板引擎。所以,對模板引擎會有如下幾個基本要求:

文檔友好

支持 api 編程

社區活躍(是否在維護和更新;issues 和 pr 的處理速度等)

功能越豐富越好

於是,就搜羅了 node 端的模板引擎。


node 端的常見引擎有如下幾個:swig/pug(jade)/mustache/ejs/doTjs/handlebars/dustjs/nunjucks/art-template 等

underscore 和 lodash 也提供了模板渲染的功能,但是我認為它們更適合作為 js 的函數功能庫,在模板渲染上的能力會稍弱,所以就不列舉了。

以上數據截止到2018-04-21 14:20

從以上數據基本可以得出以下幾個結論:

從 stars 數據上看,pug 是目前很受開發者歡迎的模板引擎

從 issues 和 contributors 的數據來看,pug 目前的社區活躍度是很好的

綜合上述數據來看,目前社區比較接受的模板引擎是 pug、 handlebars 和 nunjucks,其中,nunjucks 屬於 mozilla 的開源項目

另外在收集數據時,還發現以下幾個問題:

dustjs/swig 基本處於不再維護的狀態:dustjs 的最後一個commit 和 release 2016年12月份;swig 的最後一個commit 和 release 分別在 2016年8月和2014年8月

doT 的最後一個 commit 在 2017 年9月 最後一次 release 在2017年2月 pr 和 issue 積累歷史久遠 很多都沒處理

mustache 最後一次 commit 2017/8 最後一次 release 2016/11

所以從選擇上來說,就基本會排除了 dustjs、swig、doT 以及 mustache,剩下可供選擇的有 pug、ejs、handlebars、nunjucks 以及 art-template,這些都支持 api 編程。

但從文檔和功能上看,會排除 art-template 以及 ejs。art-template 是國人開發的,目前功能上比其它幾個稍遜色了一點;我覺得ejs 的文檔不是很友好,在 api 編程的能力上稍差一點。

pug、handlebars 以及 nunjucks 基本都滿足了我對模板引擎的幾個要求,pug/nunjucks 有中文文檔,而 handlebars 我之前有接觸過,是比較熟悉的一個模板引擎。但從我搜索的資料來看,pug 和 handlebars 的受眾和使用者會多於 nunjucks,這也意味著相關的資料或者問題解決方案也會比較多,但 nunjucks/pug 在 api 編程上會強於 handlebars,文檔也更加友好,所以綜合權衡,排除 nunjucks 和 handlebars,選擇 pug 作為 cli 工具的模板引擎。

除了在 github 上的數據,在今後的技術選型上,也可以去參考對應技術框架在 stackoverflow 上的數據,甚至還可以參考對應關鍵字在谷歌搜索上的變化趨勢,這些都可以作為技術選型的一些依據。

當然,「脫離業務和團隊成員的背景談技術選型都是耍流氓」。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Pomy隨記 的精彩文章:

TAG:Pomy隨記 |