新年送禮:用Harp +? gulp + browser-sync 構(gòu)建靜態(tài)網(wǎng)站

用Harp + gulp + browser-sync 構(gòu)建靜態(tài)網(wǎng)站

目的:

  • 快捷的實(shí)現(xiàn)頁(yè)面原型。
  • 更快的引入第三方模板。(WIP)
  • 測(cè)試后端RestfulAPI。(WIP )

Harp介紹

官網(wǎng)http://harpjs.com/

Harp 內(nèi)置靜態(tài)網(wǎng)頁(yè)預(yù)處理的靜態(tài)網(wǎng)站服務(wù)器。
Harp 提供的功能包括:

  • css預(yù)處理(Sass LESS Stylus)
  • 頁(yè)面數(shù)據(jù)加載
  • 模板文件渲染(Jade EJS)
  • 一個(gè)http server (基于 Node.js)
  • 靜態(tài)網(wǎng)頁(yè)編譯輸出
  • 靜態(tài)網(wǎng)站部署
  • 支持CoffeeScript

Harp 5項(xiàng)基本原則
http://harpjs.com/docs/development/rules

約定優(yōu)先于配置
自動(dòng)轉(zhuǎn)換模板 jade EJS到html
對(duì)象需要用下劃線“_”開頭的資源不被直接輸入。
數(shù)據(jù)通過(guò)文件名進(jìn)行自動(dòng)綁定。

Harp 中的EJS模板和數(shù)據(jù)綁定

EJS中的語(yǔ)法:
layout的引用
<%- yield %>

partial的引用
<%- partial("../_partial/_index-header") %>

數(shù)據(jù)的引用
_harp.json 存放全局變量
{ "globals": { "siteTitle": "Logic Designer" } }
頁(yè)面引用
<%=siteTitle %>
_data.json (路徑: /product/_data.json
{ "webex": { "title": "webex", "date": "2016-12-28" } }

在同目錄下引用 /product/webex.ejs
數(shù)據(jù)對(duì)象名稱如果與模板文件名一樣,則自動(dòng)綁定到模板文件的上下文中,可以省略文件對(duì)象層次,直接引用屬性。
<%=webex.title %>

通過(guò)在data文件中定義同名文件,同樣也可以指定頁(yè)面所需要渲染的layout模板。(默認(rèn)的layout的文件名稱是目錄下的_layout.ejs或者_layout.jade
{ "ykindex":{ "layout":"_ykindex-layout", "title":"yunkechina 首頁(yè)" } }

在沒有按照名稱綁定的文件中,則需要用全路徑進(jìn)行引用。(public作為數(shù)據(jù)引用的根節(jié)點(diǎn),然后加路徑和文件名稱引入數(shù)據(jù)文件)
<%=public.product._data.webex.title %>

靜態(tài)網(wǎng)站編譯 compile:可用在根目錄下的www目錄,生成對(duì)應(yīng)的html代碼。
$ harp compile

啟動(dòng)內(nèi)置的http服務(wù)器流量網(wǎng)站
$ harp server --port 9000

Q&A:

之前都看了那些靜態(tài)網(wǎng)頁(yè)生成工具:
Assemble,Metalsmith, Roots, Brunch (跟多工具:https://www.staticgen.com/)

為什么選擇Harp?
因?yàn)閯e的框架都沒看懂。

為什么選用EJS模板?
Jade沒學(xué)會(huì)。

為什么不用watchman?
不會(huì)

靜態(tài)頁(yè)面開發(fā)集成工具

  • Gulp + Broswer-sync 實(shí)現(xiàn)了修改自動(dòng)刷新,提供開發(fā)效率。(這樣就能有更多時(shí)間睡午覺)
  • 引用第三方模板庫(kù),基于bootstrap的。
  • 引入holder.js 作為圖片占位符。

其他前臺(tái)開發(fā)資源包括:

codepen
Harp 網(wǎng)上資源收集:
How to use the Harp.js static site generator
Node.js E-Commerce with Harp JS & Snipcart - Snipcart
https://github.com/snipcart/snipcart-harp
Harp, Gulp And BrowserSync
https://github.com/superhighfives/harp-gulp-browsersync-boilerplate

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • gulpjs是一個(gè)前端構(gòu)建工具,與gruntjs相比,gulpjs無(wú)需寫一大堆繁雜的配置參數(shù),API也非常簡(jiǎn)單,學(xué)...
    依依玖玥閱讀 3,304評(píng)論 7 55
  • 在現(xiàn)在的前端開發(fā)中,前后端分離、模塊化開發(fā)、版本控制、文件合并與壓縮、mock數(shù)據(jù)等等一些原本后端的思想開始...
    Charlot閱讀 5,659評(píng)論 1 32
  • awesome-gulp中文版 一份gulp的資源,插件和使用實(shí)例清單, 致力于打造更好的前端工程構(gòu)建流程。 被老...
    Pines_Cheng閱讀 5,652評(píng)論 10 117
  • 前言 本文默認(rèn)你已經(jīng)安裝好node環(huán)境,并且熟悉node命令,和window cd命令。 gulp簡(jiǎn)介 基于nod...
    9I閱讀 2,039評(píng)論 4 50
  • “我們吵個(gè)架吧?” “下周再說(shuō)” “為什么?” “這周要應(yīng)付客戶” “下周我就沒心情吵啦” “這周事情超多” “吵...
    陳皮桃汁閱讀 248評(píng)論 0 2

友情鏈接更多精彩內(nèi)容