關(guān)于gulp的使用心得

(最近一直搞angularjs.項目里非要用2個包管理器npm和bower奈泪,2個任務(wù)運行器webpage疾棵、gulp.我想BB戳稽。)

gulp是什么馆蠕?

? ? ? ?gulp是基于Nodejs的自動任務(wù)運行器, 她能自動化地完成 javascript/coffee/sass/less/html/image/css 等文件的的測試、檢查荆几、合并吓妆、壓縮、格式化吨铸、瀏覽器自動刷新行拢、部署文件生成,并監(jiān)聽文件在改動后重復(fù)指定的這些步驟诞吱。在實現(xiàn)上舟奠,她借鑒了Unix操作系統(tǒng)的管道(pipe)思想,前一級的輸出房维,直接變成后一級的輸入沼瘫,使得在操作上非常簡單。通過本文咙俩,我們將學習如何使用Gulp來改變開發(fā)流程耿戚,從而使開發(fā)更加快速高效。

? ? ? ?注:gulp 和 grunt 非常類似阿趁,但相比于 grunt 的頻繁 IO 操作膜蛔,gulp 的流操作,能更快地更便捷地完成構(gòu)建工作脖阵。

gulp常用地址:

gulp官方網(wǎng)址:http://gulpjs.com

gulp插件地址:http://gulpjs.com/plugins

gulp 官方API:https://github.com/gulpjs/gulp/blob/master/docs/API.md

gulp 中文API:http://www.ydcss.com/archives/424

廢話不多說皂股,開干。命黔。呜呐。

首先需要安裝node.node自帶npm管理包(node安裝過程這里不詳細講。百度很多)

? ? ?推薦使用淘寶的cnpm鏡像悍募,因為npm安裝插件是從國外服務(wù)器下載蘑辑,受網(wǎng)絡(luò)影響大,可能出現(xiàn)異常搜立,如果npm的服務(wù)器在中國就好了以躯。淘寶cnpm官方網(wǎng)址

1.全局安裝gulp

? ? 全局命令提示符執(zhí)行?cnpm install gulp -g

查看是否安裝成功 gulp -v

好,gulp的環(huán)境已經(jīng)搞定了啄踊,接下來就是使用gulp,

2.gulp的實戰(zhàn)

創(chuàng)建app文件夾忧设。在文件夾里添加package.json文件(package.json是node的配置文件)

package.json的代碼如下:

{

? ? "name": "test", ?

? ? "version": "1.0.0", ?

? ? "description": "test gulp", ?

? ? "homepage": "", ?

? ? "author": { ? ?

? ? ? ?"name": "lucky",

? ? ? ?"email": "*****@qq.com"

? ? },

? ? "license": "ISC", ? ?

? ? "devDependencies": { ? ?

? ? "gulp": "^3.8.11",

? ? "gulp-sass": "^2.3.2"

? ? }

}

同時創(chuàng)建 src 文件夾 和 dist 文件夾

接下來下載依賴包。在項目目錄下使用命令提示符執(zhí)行 cnpm install

(注:package.json的注釋需要全部刪除颠通。否則會報錯V吩巍!6倜獭)

成功之后谨垃,會多了對應(yīng)的依賴文件了启搂,說明成功。如圖

好了刘陶,在根目錄下創(chuàng)建gulpfile.js文件

? ? ?說明:gulpfile.js是gulp項目的配置文件胳赌,是位于項目根目錄的普通js文件(其實將gulpfile.js放入其他文件夾下亦可)。

gulpfilejs 的代碼如下:

//導(dǎo)入工具包 require('node_modules里對應(yīng)模塊')

var gulp = require('gulp'), //本地安裝gulp所用到的地方

sass = require('gulp-sass');

//定義一個sass任務(wù)(自定義任務(wù)名稱)

gulp.task('sass', function () {

? ? ?gulp.src('src/sass/index.scss') //該任務(wù)針對的文件

? ? ? .pipe(sass()) //該任務(wù)調(diào)用的模塊

? ? ? .pipe(gulp.dest('dist/css')); //將會在src/css下生成index.css

});

gulp.task('default',['sass']); //定義默認任務(wù)

接著匙隔,在src里面創(chuàng)建css文件,在src里面創(chuàng)建sass文件夾疑苫,并在sass文件夾中創(chuàng)建index.scss;

index.scss代碼如下:

//sass style,如果不會sass語法纷责,可百度

$primaryColor: #333;

$linkColor: #333;

body { ?

? ? ?color: $primaryColor;?

}

a{

? ? ?color:nth($linkColor,1);

? ? ?&:hover{

? ? ? ? ? color:nth($linkColor,2);

? ? ?}

}

接下來通過gulp 編譯sass文件.

運行命令行 gulp sass (sass 是在gulpfilejs自定義任務(wù)名稱)

查看dist的css文件下捍掺,就會通過gulp 輸出的css文件了。

如果我們每次都修改sass文件再膳,我們每次都要去編輯命令挺勿?

其實我們可以利用gulp 的監(jiān)聽方法,只要文件有修改就自動編譯喂柒。

接下來我們修改gulpfilejs文件不瓶,

gulpfilejs代碼:

//導(dǎo)入工具包 require('node_modules里對應(yīng)模塊')

var gulp = require('gulp'), //本地安裝gulp所用到的地方

sass = require('gulp-sass');

//定義一個sass任務(wù)(自定義任務(wù)名稱)

gulp.task('sass', function () {

? ? ?gulp.src('src/sass/index.scss') //該任務(wù)針對的文件

? ? ? .pipe(sass()) //該任務(wù)調(diào)用的模塊

? ? ? .pipe(gulp.dest('dist/css')); //將會在src/css下生成index.css

});

gulp.task('default',['sass']); //定義默認任務(wù)

//新增的代碼。watch函數(shù)

//監(jiān)聽任務(wù),src/sass目錄下的所有sass文件

gulp.task('watch', ['sass'], function () {

? ? ?gulp.watch('src/sass/*.scss', ['sass']);

});

運行命令行 gulp watch

現(xiàn)在如果修改sass文件的話灾杰,gulp就會監(jiān)聽湃番,就會自動幫你編譯css文件了。

好了吭露,gulp的最基本的教程就結(jié)束了,gulp還有很多的插件尊惰,我就不一一實現(xiàn)了讲竿。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市弄屡,隨后出現(xiàn)的幾起案子题禀,更是在濱河造成了極大的恐慌,老刑警劉巖膀捷,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件迈嘹,死亡現(xiàn)場離奇詭異,居然都是意外死亡全庸,警方通過查閱死者的電腦和手機秀仲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來壶笼,“玉大人神僵,你說我怎么就攤上這事「才” “怎么了保礼?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵沛励,是天一觀的道長。 經(jīng)常有香客問我炮障,道長目派,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任胁赢,我火速辦了婚禮企蹭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘徘键。我一直安慰自己练对,他們只是感情好,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布吹害。 她就那樣靜靜地躺著螟凭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪它呀。 梳的紋絲不亂的頭發(fā)上螺男,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機與錄音纵穿,去河邊找鬼下隧。 笑死,一個胖子當著我的面吹牛谓媒,可吹牛的內(nèi)容都是我干的淆院。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼句惯,長吁一口氣:“原來是場噩夢啊……” “哼土辩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起抢野,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤拷淘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后指孤,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體启涯,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年恃轩,在試婚紗的時候發(fā)現(xiàn)自己被綠了结洼。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡详恼,死狀恐怖补君,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情昧互,我是刑警寧澤挽铁,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布伟桅,位于F島的核電站,受9級特大地震影響叽掘,放射性物質(zhì)發(fā)生泄漏楣铁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一更扁、第九天 我趴在偏房一處隱蔽的房頂上張望盖腕。 院中可真熱鬧,春花似錦浓镜、人聲如沸溃列。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽听隐。三九已至,卻和暖如春哄啄,著一層夾襖步出監(jiān)牢的瞬間雅任,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工咨跌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留沪么,地道東北人。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓锌半,卻偏偏與公主長得像禽车,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子刊殉,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

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

  • 在現(xiàn)在的前端開發(fā)中哭当,前后端分離、模塊化開發(fā)冗澈、版本控制、文件合并與壓縮陋葡、mock數(shù)據(jù)等等一些原本后端的思想開始...
    Charlot閱讀 5,431評論 1 32
  • 前言 本文默認你已經(jīng)安裝好node環(huán)境亚亲,并且熟悉node命令,和window cd命令腐缤。 gulp簡介 基于nod...
    9I閱讀 1,973評論 4 50
  • 安裝Gulp首先需要安裝Node.js捌归,并在控制臺輸入$ npm install gulp -gMac端需要寫成$...
    LaBaby_閱讀 909評論 0 1
  • 參照Gulp for Beginners來學習Gulp基本內(nèi)容。以下為學習記錄筆記岭粤。 安裝Gulp 首先需要安裝N...
    JenniferYe閱讀 2,523評論 1 17
  • gulpjs是一個前端構(gòu)建工具惜索,與gruntjs相比,gulpjs無需寫一大堆繁雜的配置參數(shù)剃浇,API也非常簡單巾兆,學...
    井皮皮閱讀 1,291評論 0 10