gulp前端自動(dòng)化構(gòu)建工具入門(mén)

gulp是基于node.js的一個(gè)構(gòu)建工具(自動(dòng)任務(wù)運(yùn)行器),開(kāi)發(fā)者可以使用它自動(dòng)化工作流程。
一些常見(jiàn)的、重復(fù)的任務(wù),例如:網(wǎng)頁(yè)自動(dòng)刷新、css預(yù)處理、代碼檢測(cè)、壓縮圖片、等,只需要簡(jiǎn)單的命令就能全部完成。使用它可以簡(jiǎn)化工作,提高開(kāi)發(fā)效率。

gulp優(yōu)點(diǎn):

簡(jiǎn)潔:gulp側(cè)重“代碼優(yōu)于配置”,最直觀的感受,更為簡(jiǎn)單和清晰,不需要grunt一樣寫(xiě)一堆龐大的配置文件。
高效:gulp基于node streams(流)來(lái)構(gòu)建任務(wù),避免磁盤(pán)反復(fù)讀取/寫(xiě)入。每個(gè)任務(wù)都是單獨(dú)執(zhí)行,這使得它速度更快、更為純粹。
易學(xué):gulp核心API只有4個(gè),簡(jiǎn)潔的API易于上手,學(xué)習(xí)過(guò)程平滑。

4個(gè)API:

  • gulp.src(globs,[options]) 指明源文件路徑globs:路徑模式匹配; option是:可選參數(shù);
  • gulp.dest(path,[options]); 指明處理后的文件輸出路徑path:路徑(一個(gè)任務(wù)可以有多個(gè)輸出路徑);
  • gulp.task(name,[deps],fn); 注冊(cè)任務(wù) name:任務(wù)名稱(通過(guò)gulp name 來(lái)執(zhí)行這個(gè)任務(wù));
  • deps: 可選的數(shù)組,在本任務(wù)運(yùn)行中所需要依賴的其他任務(wù)(當(dāng)前任務(wù)在依賴任務(wù)執(zhí)行完畢后才會(huì)執(zhí)行); fn:任務(wù)函數(shù)(function 方法);

安裝

  • 安裝nodejs http://nodejs.org

  • 創(chuàng)建目錄 mkdir mygulp

  • 創(chuàng)建配置信息(package.json): npm init -y

  • 安裝: 全局安裝: npm install gulp -g

            本地安裝: npm install gulp --save-dev
    

注: package.json(此文件在node_modules\gulp 目錄下);-Dev:將它作為你的項(xiàng)目依賴添加到中devDependencies內(nèi)。

插件安裝

  • 靜態(tài)服務(wù)器(gulp-webserver)
  • 網(wǎng)頁(yè)自動(dòng)刷新(gulp-livereload)
  • 安裝命令: npm install gulp-livereload gulp-webserver --save-dev

gulp任務(wù)配置

  • 在項(xiàng)目目錄中創(chuàng)建 gulpfile.js文件,用來(lái)配置和定義任務(wù)(task)

  • 編輯gulpfile.js

// 引入gulp
var gulp = require('gulp');

// 引入gulp插件
// 網(wǎng)頁(yè)自動(dòng)刷新
var livereload = require('gulp-livereload');
// 本地服務(wù)器
var webserver = require('gulp-webserver');

// 注冊(cè)任務(wù)
gulp.task('webserver',function () {
  gulp.src('./' )  // 服務(wù)器根目錄
  .pipe(webserver({   // 運(yùn)行webserver
    livereload: true,    // 啟用livereload
    open: true  // 服務(wù)器啟動(dòng)時(shí)自動(dòng)打開(kāi)網(wǎng)頁(yè)
  }));
});

// 監(jiān)聽(tīng)任務(wù)
gulp.task('watch',function() {
  gulp.watch('*.html',['html'])  //監(jiān)聽(tīng)根目錄下所有HTML文件
});

// 默認(rèn)任務(wù)
gulp.task('default',['webserver','watch']);

終端命令 : gulp 自動(dòng)執(zhí)行

注:1、gulp插件可以通過(guò)gulp官網(wǎng)、npm官網(wǎng)或browsenpm上找到你所要 的插件。2、不要在node_modules文件夾內(nèi)手動(dòng)刪除插件,請(qǐng)使用命令卸載。因?yàn)槭謩?dòng)刪除的只是下載插件包,但package.json中配置信息并沒(méi)有清除。3、不要直接移動(dòng)gulp插件,否則優(yōu)于系統(tǒng)層級(jí)限制,出現(xiàn)錯(cuò)誤提示"文件夾名對(duì)目標(biāo)文件夾可能過(guò)長(zhǎng),您可以縮短文件夾名并重試,或者嘗試路徑較短的位置",此時(shí)把文件夾打包成RAR后在操作便可。4、npm常用命令:

  • 安裝插件: npm [-g] [--save-dev]
  • 更新插件:npm update [-g] [--save-dev]
  • 卸載插件: npm uninstall [-g] [--save-dev]
  • 指定版本: npm install @VERSION [--save-dev] (其中VERSION就是你所需要的版本號(hào))
最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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