Gulp實現(xiàn)靜態(tài)網(wǎng)頁模塊化的方法詳解
前言
在做純靜態(tài)頁面開發(fā)的過程中,難免會遇到一些的尷尬問題。比如:整套代碼有50個頁面,其中有40個頁面頂部和底部模塊相同。那么同樣的兩段代碼我們復(fù)制了40遍(最難受的方法)。然后,這個問題就這樣解決了。再然后,產(chǎn)品經(jīng)理看了幾遍后突然說頂部的某塊需要改改設(shè)計。。。突然感覺好尷尬~~(心里是萬馬奔騰~),然后呢?然后就期待下一次的萬馬奔騰?。?!
雖然類似問題的解決方案很多,但是純前端,不用各種框架的情況下,一種比iframe更靠譜的解決方案莫過于用像gulp這樣的構(gòu)建工具來完成。雖然在體驗上也許會有一點小小的瑕疵(每次改完文件要預(yù)覽,都需要先gulp一下),但是也并非是不能忍受。畢竟我們想要的僅僅是改一改某公共模塊就能達到解決40個頁面的目的。
gulp簡介
gulp是一個自動化構(gòu)建工具。在開發(fā)過工程中,能夠使用gulp對項目進行自動構(gòu)建,大大提高工作效率。
安裝gulp
在安裝gulp之前先要確認已經(jīng)正確安裝了node.js,然后在項目根目錄下安裝gulp:
$ npm install gulp
舉例的開發(fā)環(huán)境配置:
Windows:在iis里搭建項目,方便在瀏覽器中預(yù)覽;使用webstorm編輯器(習(xí)慣了,感覺比記事本還是要好用很多,還可以忽略某些文件夾)。
MacOs: 在apache里搭建項目,方便在瀏覽器中預(yù)覽;使用webstorm編輯器(習(xí)慣了,感覺比sublime用得更liu一點,還可以忽略某些文件夾)。
必備插件:
gulp-file-include
技能描述:
將需要模塊化的html代碼放到一個獨立的html文件中。如:head.html
然后在需要使用的地方使用:@@include('./head.html')
文件路徑自定義~~
最后配置好gulp并執(zhí)行
使用Demo:
html:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0"> <title></title> <link rel="stylesheet" href="css/comm.css?v=1.13" rel="external nofollow" > <link rel="stylesheet" href="css/template.css" rel="external nofollow" > <link rel="stylesheet" href="css/news.css" rel="external nofollow" > </head> <body> @@include('../Layout/head.html') <div class="news"> </div> @@include('../Layout/foot.html') </body>
gulp:
var gulp = require('gulp'), fileinclude = require('gulp-file-include'); gulp.task('prew', function () { gulp.src(['*.html','pages/*.html', '!node_modules/**/*.html']) .pipe(fileinclude({ prefix: '@@', basepath: '@file' })) .pipe(gulp.dest('prew')); gulp.src(['**/**.js', '!node_modules/**/*']).pipe(gulp.dest('prew/')); gulp.src(['**/**.css', '!node_modules/**/*']).pipe(gulp.dest('prew/')); gulp.src(['**/*.jpg', '**/*.jpge', '**/*.png', '**/*.gif', '**/*.bmp', '!prew/**/*', '!node_modules/**/*']).pipe(gulp.dest('prew/')); }); gulp.task('watch',function () { gulp.watch(['pages/*.html','css/*.css','img/**/*','!prew/**/*.html','!prew/**/*.css','!prew/img/**/*'], ['prew']); })
技能介紹:
執(zhí)行 gulp prew
會將文件復(fù)制到prew目錄下,并生成對應(yīng)的完整html文件。(注:此處將pages文件夾下的文件直接放到了prew根目錄下,并非prew/pages。根據(jù)需要自改配置)
執(zhí)行 gulp watch
后gulp會建立一個監(jiān)聽進程,在開發(fā)的時候每次修改文件后,gulp會自動執(zhí)行prew,這樣就不用每次都手動執(zhí)行gulp prew
然后再去刷瀏覽器。(這是一招實用技能)
最后:
這套技能的要點不在于如何使用gulp,而是怎么去劃分模塊。每個模塊除了有html代碼以外,其實還可以有js、css代碼或者引入js、css文件的代碼,這樣才能更模塊一點。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
JavaScript 文件加載與阻塞問題之性能優(yōu)化案例詳解
這篇文章主要介紹了JavaScript 文件加載與阻塞問題之性能優(yōu)化案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-09-09解決layui數(shù)據(jù)表格table的橫向滾動條顯示問題
今天小編就為大家分享一篇解決layui數(shù)據(jù)表格table的橫向滾動條顯示問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09微信小程序onLaunch異步,首頁onLoad先執(zhí)行?
這篇文章主要介紹了微信小程序onLaunch異步,首頁onLoad先執(zhí)行? 文章底部給大家介紹了小程序_onLaunch異步回調(diào)數(shù)據(jù)加載問題的兩種解決方案,需要的朋友可以參考下2018-09-09