webpack3 多頁面?zhèn)鹘y(tǒng)靜態(tài)頁面開發(fā)手腳架

multipage-start-kit

基于 Webpack 開發(fā)和構(gòu)建 傳統(tǒng)多頁面靜態(tài)站點的前端工程化方案削锰,支持
同時適用于 PC 端和移動端。
github:鏈接

Requirements

  • node ^5.0.0
  • yarn ^0.23.0 or npm ^3.0.0

功能

  • 前端工程化
  • 支持響應式
  • 模塊化
  • 組件化
  • 開發(fā)旺矾、調(diào)試和構(gòu)建
  • 集成 PostCSS、Sass

Installation 安裝

$ https://github.com/HuaRongSAO/multipage-start-kit <my-project-name>
$ cd <my-project-name>
$ npm i
$ npm start //開始開發(fā)和調(diào)試
$ npm run build //壓縮打包
$ npm run server //發(fā)布運行本地服務器

全局補丁

添加 polyfill

按需引入 polyfill夺克,提高瀏覽器兼容性箕宙。
polyfill 在 /src/javascript/polyfill.js 文件中引入:

// 1) Object.assign
Object.assign = require('object-assign')

// 2) Promise
if (typeof Promise === 'undefined') {
    require('promise/lib/rejection-tracking').enable()
    window.Promise = require('promise/lib/es6-extensions.js')
}

// 3) Fetch
// ------------------------------------
// Fetch polyfill depends on a Promise implementation, so it must come after
// the feature check / polyfill above.
if (typeof window.fetch === 'undefined') {
    require('whatwg-fetch')
}
// 3) 第三方工具庫
if (typeof window._ === 'undefined') {
    require('lodash')
}

樣式編寫規(guī)范

請參照 BEM 規(guī)范,詳情見:https://github.com/zhaotoday/bem铺纽,下面是一個例子:
HTML 代碼:

<nav class="nav">
  <a href="#" class="nav__item nav__item--normal">正常狀態(tài)</a>
  <a href="#" class="nav__item nav__item--active">當前狀態(tài)</a>
  <a href="#" class="nav__item nav__item--hover">鼠標移上時的狀態(tài)</a>
</nav>

Sass 代碼:

.nav {
  &__item {
    &--normal {
    }
    &--active {
    }
    &--hover {
    }
  }
}

響應式開發(fā)

npm i -D include-media

@import "~include-media/dist/_include-media.scss";

$breakpoints: (phone: 320px, tablet: 768px, desktop: 1024px);

.selector {
  @include media("<=tablet") {
    background-color: red;
  }

  @include media(">tablet", "<desktop") {
    background-color: yellow;
  }

  @include media(">=desktop") {
    background-color: green;
  }
}

目錄結(jié)構(gòu)



├── bin  #服務器配置文件夾    
│   └── server.js  #express #服務器實例配置     
├── build  #webpack配置文件夾    
│   ├── filePath.js  #文件路徑   
│   ├── tool  #封裝的小工具(獲取文件柬帕,log)    
│   │   ├── getFile.js   
│   │   ├── logger.js   
│   │   └── watchDirs.js   
│   ├── webpack.config.base.js  #  webpack基礎(chǔ)配置  
│   ├── webpack.config.dev.js  #  webpack 開發(fā)模式基礎(chǔ)配置   
│   └── webpack.config.production.js  #  webpack 生產(chǎn)模式基礎(chǔ)配置     
├── dist  # 輸出文件夾   
├── package.json  
├── README.md    
├── src  #  根路徑     
│   ├── data  #  靜態(tài)數(shù)據(jù)      
│   │   └── data.json   
│   ├── image  #  靜態(tài)圖片   
│   │   ├── logo.png   
│   │   └── p.jpg   
│   ├── javascript  #  js模塊  
│   │   ├── lib  #  js庫文件      
│   │   │   └── normalize.js      
│   │   ├── polyfill.js  # pilyfill 文件      
│   │   └── vendor  # vendor 文件    
│   │       └── vendor.js   
│   ├── layout   # html模板文件   
│   │   ├── head   # html模板文件 組件   
│   │   │   ├── MobileHead.ejs    # flex-lib 移動分辨率兼容方案   
│   │   │   └── PcHead.ejs    # 移動方案     
│   │   └── polyfill     
│   │       └── polyfill.ejs   # html5  shim    
│   ├── setting.js  #  項目設(shè)置(端口)     
│   ├── style  #  樣式    
│   │   ├── app.scss  #  全局樣式入口     
│   │   ├── base  #  樣式工具模塊    
│   │   │   ├── _base.scss   #  基礎(chǔ)樣式工具模塊     
│   │   │   ├── _color.scss  #  顏色工具模塊     
│   │   │   ├── _fn.scss     #  方法工具模塊     
│   │   │   ├── _mixin.scss  #  mixin工具模塊     
│   │   │   └── _reset.scss  #  reset樣式工具模塊     
│   │   ├── style.js   #  webpack 樣式入口(!單一css輸出設(shè)置)  
│   │   └── utill.scss  #  樣式工具模塊出口         
│   └── view  #  單頁面文件夾       
│       ├── home  #  頁面文件夾   
│           ├── home.html  #  html文件     
│           ├── home.js    #  js文件   
│           ├── home.scss  #  scss文件 需要import到app.css  
│           └── asset  #  靜態(tài)資源   
│                └── bg.jpg  
│    
└── static   
    ├── favicon.ico   
    └── readme.md   

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末狡门,一起剝皮案震驚了整個濱河市陷寝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌融撞,老刑警劉巖盼铁,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異尝偎,居然都是意外死亡饶火,警方通過查閱死者的電腦和手機鹏控,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肤寝,“玉大人当辐,你說我怎么就攤上這事±鹂矗” “怎么了缘揪?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長义桂。 經(jīng)常有香客問我找筝,道長,這世上最難降的妖魔是什么慷吊? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任袖裕,我火速辦了婚禮,結(jié)果婚禮上溉瓶,老公的妹妹穿的比我還像新娘急鳄。我一直安慰自己,他們只是感情好堰酿,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布疾宏。 她就那樣靜靜地躺著,像睡著了一般触创。 火紅的嫁衣襯著肌膚如雪坎藐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天嗅榕,我揣著相機與錄音顺饮,去河邊找鬼。 笑死凌那,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的吟逝。 我是一名探鬼主播帽蝶,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼块攒!你這毒婦竟也來了励稳?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤囱井,失蹤者是張志新(化名)和其女友劉穎驹尼,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體庞呕,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡新翎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年程帕,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片地啰。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡愁拭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出亏吝,到底是詐尸還是另有隱情岭埠,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布蔚鸥,位于F島的核電站惜论,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏止喷。R本人自食惡果不足惜来涨,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望启盛。 院中可真熱鬧蹦掐,春花似錦、人聲如沸僵闯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鳖粟。三九已至社裆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間向图,已是汗流浹背泳秀。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留榄攀,地道東北人嗜傅。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像檩赢,于是被迫代替她去往敵國和親吕嘀。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,742評論 25 707
  • 今天是周末贞瞒,本想睡個懶覺以補上班時日的睡眠不足偶房,卻還是在生物鐘形成的習慣中在六點二十三分被敲醒。 拿起手機军浆,大致翻...
    簡小取閱讀 650評論 1 7
  • 很多人之所以難以進入更高的社會階層摄悯,是抱著小富即安的心理,只關(guān)注眼前的利益庆杜。 精英與平庸者之間的區(qū)別射众,其實就是看誰...
    董歐閱讀 9,637評論 3 8