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))