項(xiàng)目構(gòu)建

項(xiàng)目構(gòu)建

多個(gè)開發(fā)者共同開發(fā)一個(gè)項(xiàng)目,每位開發(fā)者負(fù)責(zé)不同的模塊,這就會(huì)造成一個(gè)完整的項(xiàng)目實(shí)際上是由許多的“代碼版段”組成的;

使用less、sass等一些預(yù)處理程序,降低CSS的維護(hù)成本,最終需要將這些預(yù)處理程序進(jìn)行解析;
合并css、javascript,壓縮html、css、

javascript、images可以加速網(wǎng)頁打開速度,提升性能;

這一系列的任務(wù)完全靠手動(dòng)完成幾乎是不可能的,借助構(gòu)建工具可以輕松實(shí)現(xiàn)。

所謂構(gòu)建工具是指通過簡單配置就可以幫我們實(shí)現(xiàn)合并、壓縮、校驗(yàn)、預(yù)處理等一系列任務(wù)的軟件工具。

常見的構(gòu)建工具包括:Grunt、Gulp、F.I.S(百度出品)、webpack

Gulp

Gulp是基于Nodejs開發(fā)的一個(gè)構(gòu)建工具,借助gulp插件可以實(shí)現(xiàn)不同的構(gòu)建任務(wù),以其簡潔的配置和卓越的性能成為目前主流的構(gòu)建工具。
全局安裝 npm install -g gulp

Gulp基礎(chǔ)

  • 1、本地安裝gulp
    進(jìn)入項(xiàng)目根目錄執(zhí)行npm install gulp --save-dev(添加--save-dev會(huì)在package.json記錄依賴關(guān)系)。
  • 2、任務(wù)清單
    在項(xiàng)目根目錄中創(chuàng)建gulpfile.js(這是一個(gè)配置文件)
1.png
  • 定義任務(wù)
    在gulpfile.js定義構(gòu)建任務(wù),如壓縮、合并,Gulp自身并不執(zhí)行任何任務(wù),是通過調(diào)用具體插件來完成的。
    以編譯LESS為例,安裝npm install gulp-less,如下圖定義任務(wù)
2
  • 4、執(zhí)行任務(wù)
    輸入命令 gulp less
3

這樣我們的LESS文件便會(huì)編譯成CSS了。

Gulp工作原理

原理

通過不同的插件實(shí)現(xiàn)構(gòu)建任務(wù),Gulp只是按著配置文件調(diào)用執(zhí)行了這些插件。
Gulp API

Gulp是基于NodeJS的,通過require可以引入一個(gè)NodeJS的包(模塊),其作用類似于瀏覽器中的script標(biāo)簽引入資源,被引入的包存放在node_modules目錄下。

引入gulp包(模塊)后返回一個(gè)對象,習(xí)慣賦值給變量gulp,通過該對象提供的方法(API)完成任務(wù)的配置。

  • 1、gulp.task() 定義各種不同的任務(wù),如下圖有兩個(gè)參數(shù)
4

不同任務(wù)間存在依賴關(guān)系時(shí),可以指定依賴,如下圖

5
  • 2、gulp.src() 需要構(gòu)建資源的路徑,字符串或數(shù)組(可以正則方式書寫)
5
  • 3、gulp.pipe() 管道,將需要構(gòu)建的資源“輸送”給插件。
6
  • 4、gulp.dest() 構(gòu)建任務(wù)完成后資源存放的路徑(會(huì)自動(dòng)創(chuàng)建)
7

gulp.watch()

常用Gulp插件

插件 描述
gulp-less 編譯LESS文件
gulp-autoprefixer 添加CSS私有前綴
gulp-cssmin 壓縮CSS
gulp-rname 重命名
gulp-imagemin 圖片壓縮
gulp-uglify 壓縮Javascript
gulp-concat 合并
gulp-htmlmin 壓縮HTML
gulp-rev 添加版本號
gulp-rev-collector 內(nèi)容替換
gulp-useref
gulp-if
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 一、項(xiàng)目構(gòu)建 多個(gè)開發(fā)者共同開發(fā)一個(gè)項(xiàng)目,每位開發(fā)者負(fù)責(zé)不同的模塊,這就會(huì)造成一個(gè)完整的項(xiàng)目實(shí)際上是由許多的“代碼...
    福爾摩雞閱讀 742評論 0 0
  • 項(xiàng)目構(gòu)建 多個(gè)開發(fā)者共同開發(fā)一個(gè)項(xiàng)目,每位開發(fā)者負(fù)責(zé)不同的模塊,這就會(huì)造成一個(gè)完整的項(xiàng)目實(shí)際上是由許多的“代碼版段...
    magic_pill閱讀 180評論 0 1
  • (一)什么是Gulp gulp是前端開發(fā)過程中對代碼進(jìn)行構(gòu)建的工具,它不僅能對網(wǎng)站資源進(jìn)行優(yōu)化,而且在開發(fā)過程中很...
    _花閱讀 531評論 0 1
  • bower 的安裝,需要nodejs 因?yàn)閎ower就是nodejs編寫的,nodejs是他的運(yùn)行平臺(tái)。 安裝no...
    Isaacyyy閱讀 373評論 0 0
  • gulpjs是一個(gè)前端構(gòu)建工具,與gruntjs相比,gulpjs無需寫一大堆繁雜的配置參數(shù),API也非常簡單,學(xué)...
    依依玖玥閱讀 3,306評論 7 55

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