gulp中css和js壓縮以及處理報錯(淺顯易懂属提,基礎(chǔ)篇,大神繞行)

由于鄙人才疏學淺美尸,所以只能用最直白的方法來敘述比較簡單的事情冤议。廢話不多,開始步入本文正題吧师坎!

當我們網(wǎng)站項目做完的時候恕酸,會發(fā)現(xiàn)項目出現(xiàn)一堆的js以及css等等。我們?nèi)绾魏侠淼貙⑺鼈冋系揭黄鹂杪紤]到方便易行我選用了gulp蕊温。它所實現(xiàn)的效果就是將所有的js文件整合到一個js文件里面,并且壓縮成一行遏乔。

首先我們要了解义矛,gulp是在node環(huán)境下運行的,有了node盟萨,我們下載一個git用來輸入命令就可以了凉翻。這個大家都可以在相應(yīng)的網(wǎng)站上找到答案,不多介紹nodejs了捻激,加快實現(xiàn)目標的步伐制轰。

第一步:我們打開git的命令行工具前计,去命令行npm install -g gulp(安裝全局gulp)。

安裝一下全局的gulp 等待幾分鐘之后就下載好了垃杖,然后輸入gulp –v來查看一下gulp是否存在以及版本是多少男杈。


(下面是可選步驟,所以用斜體來影響一下閱讀速度调俘,希望用到的同學們仔細看看):

第1.5步:

如果我們有碼云或者githup線上的項目的話伶棒,我們需要配置一下gulp;(這里我用碼云舉個例子)

輸入npm

init開始配置gulp脉漏,把下面的幾個參數(shù)設(shè)置好苞冯。

name:(碼云)

Sorry,name can only contain URL-friendly characters.

name:(碼云) miaoshu

version:(1.0.0)

description:ceshi gulp

entrypoint: (index.js)

testcommand:

gitrepository:

keywords:

author:zhurui

Is this ok? (yes) y這里的時候輸入yes或者y,確定配置侧巨。此時會出現(xiàn)一個package.json文件里面是剛剛的配置舅锄。



好了,下面讓我們接著說我們第二步需要來做什么:

第二步:在我們項目的文件夾中(根目錄下)打開命令行司忱。輸入命令npm install --save-dev gulp(下載本地gulp)皇忿,等待下載完畢會出現(xiàn)一個本地的文件夾node_modules文件夾。這就說明我們本地的gulp已經(jīng)下載好了坦仍。


這個文件出現(xiàn)了就表示局部gulp下載好了


第三步:就在上圖這個根目錄中鳍烁,我們新建一個js,名字叫g(shù)ulpfile.js

這里面是用來寫我們gulp運行的一些行為繁扎,比如合并幔荒,壓縮,重命名啊梳玫,等等爹梁。先配置,到后面一看就明白了


這個文件是自己新建的

到了第四步我們要了解我們需要做什么:

在項目的根目錄中的命令行中提澎,輸入我們要用到的東西姚垃,這些都是局部的:

如果想要壓縮js代碼:$ npm install --save-devgulp-uglify

如果想要壓縮css代碼:$ npm install--save-dev gulp-minify-css

如果想要刪除文件夾和文件的命令:$ npm install--save-dev gulp del

如果想要less轉(zhuǎn)換為css插件:$ npm install--save-dev gulp-less

如果想要合并文件:$ npm install --save-devgulp-concat

如果想要給文件重新命名:$ npm install --save-devgulp-rename

第四步:按需求下載好自己所需要的局部組件,然后下一步就是要去gulpfile.js里面配置我們gulp運行時候的行為了

首先引入剛剛下載好的組件:

//引入gulp

var gulp = require('gulp');

//引入組件(這里面有:重命名盼忌,壓縮js的組件积糯,合并js的組件)

var concat = require('gulp-concat');

var uglify = require('gulp-uglify');

var rename = require('gulp-rename');

組件引入之后,我們開始寫我們gulp的行為了谦纱,也就是我們運行g(shù)ulp的時候他需要怎么做看成。

//舉個例子:這是把js壓縮并且合并的一個行為

其中:task(任務(wù)):每一個gulp的命令都是一個任務(wù)。

src(引入):引入需要構(gòu)建的文件路徑跨嘉。

dest(輸入):輸出文件的路徑绍昂。

watch(監(jiān)聽):監(jiān)聽文件的變化,可以自動執(zhí)行任務(wù)偿荷。

//我給這個行為起了一個名字為” scripts”窘游,然后緊接著一個回掉函數(shù)記錄他的行為

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

//引入js文件夾下面的所有.js格式的文件,*代表全部跳纳,當然也可以針對到某一個js文件忍饰。

gulp.src('./js/*.js')

//concat就是我們下載好,然后還引進來的那個組件寺庄,合并他們所有的js文件合并玩了名字叫做all.js

.pipe(concat('all.js'))

//合并完之后我將他輸出到根目錄下的一個新的文件夾“dist“里面

.pipe(gulp.dest('./dist'))

//雖然所有js文件合并到了all.js里面艾蓝,但是他們現(xiàn)在格式還是“生前“的樣子,我需要將它們變?yōu)橐恍卸诽粒∵@時候就用到了一個重命名:rename我給all.js起了一個名字叫做all.min.js赢织,緊接著用到了引入的js壓縮組件uglify(),然后那么多行的js文件就變?yōu)榱艘粌尚械?/p>

.pipe(rename('all.min.js'))

.pipe(uglify())

//處理完之后我也將他輸出到根目錄下的文件夾“dist“里面

.pipe(gulp.dest('./dist'));

});

額馍盟,這時候在gulpfile.js文件里面相當于記錄了兩種行為了于置,一種是引入,一種是操作不要以為這時候就大功告成了贞岭,還有最重要的一部:我們需要繼續(xù)寫一個默認的任務(wù)

//默認任務(wù)default八毯,這個名字是必不可少的

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

//run一下(默認執(zhí)行的是我寫的名字為'scripts'進行js代碼壓縮的行為)

gulp.run('scripts');

//監(jiān)聽文件變化(如果js文件有變化,就會執(zhí)行下面的行為)

gulp.watch('./js/*.js', function(){

gulp.run('lint', 'sass', 'scripts');

});

});

有人要問瞄桨,如果不寫默認行為可以不话速,回答是當然不可以,如果不寫默認行為會報錯的芯侥〔唇唬看我把他注釋掉


注釋掉之后在git命令行中運行g(shù)ulp會報錯
沒有默認任務(wù)運行所有g(shù)ulp任務(wù)的報錯信息

報錯信息竟然是'default',我js文件中并沒有提到過'default'的柱查。所以說廓俭,這是初學者最容易進入的一個誤區(qū)之一了。我們是必須要寫默認行為的物赶。


好了白指,我們整體來看一下,我們做好的配置長什么樣子:

三大塊

總共三大步驟酵紫,引入告嘲,任務(wù),默認任務(wù)奖地。很簡單的橄唬。

最后一步:運行

既然都已經(jīng)配置好了,我們就來運行一下吧参歹,回到項目的根目錄中仰楚,我們打開git的命令行,輸入gulp并且回車,很好僧界,出現(xiàn)這些時間表示我們已經(jīng)成功了侨嘀。然后我們會看到根目錄自己出現(xiàn)了一個名字叫做dist的文件夾,小心翼翼的打開里面捂襟,驚喜的發(fā)現(xiàn)了all.js以及all.min.js兩個文件靜靜的躺在里面咬腕。

成功的標志


成功的直接標志

開心之際不要忘了一個重要的事情:我們?nèi)グ阉许撁嬷械膕cript指向一個文件夾!


切記切記要修改引入js的路徑哦

打開頁面:


完美葬荷,js效果可用

可以正常運行涨共,完美!

在此還要提到最后一步:運行宠漩。

如果運行:gulp是執(zhí)行g(shù)ulpfile.js里面所有的任務(wù)举反。如果此時有一個壓縮css的任務(wù),有一個壓縮js的任務(wù)扒吁,分別叫做script和css


兩個任務(wù)的名字

我們只想壓縮一下js火鼻,那么就執(zhí)行g(shù)ulp+任務(wù)名稱也就是:$ gulp script完成!J莩隆D!!晨逝!只會壓縮js蛾默,不回去動css的代碼。



壓縮成了這樣

壓縮的親爸爸都認不出來了~

(本文章適合入門捉貌,sass支鸡,less壓縮,圖片壓縮都是需要以上的步驟趁窃,只不過引入的組件不同而已牧挣,希望我講的大家可以看得懂。)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末醒陆,一起剝皮案震驚了整個濱河市瀑构,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌刨摩,老刑警劉巖寺晌,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異澡刹,居然都是意外死亡呻征,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門罢浇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來陆赋,“玉大人沐祷,你說我怎么就攤上這事≡艿海” “怎么了赖临?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長阵子。 經(jīng)常有香客問我思杯,道長,這世上最難降的妖魔是什么挠进? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮誊册,結(jié)果婚禮上领突,老公的妹妹穿的比我還像新娘。我一直安慰自己案怯,他們只是感情好君旦,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著嘲碱,像睡著了一般金砍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上麦锯,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天恕稠,我揣著相機與錄音,去河邊找鬼扶欣。 笑死鹅巍,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的料祠。 我是一名探鬼主播骆捧,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼髓绽!你這毒婦竟也來了敛苇?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤顺呕,失蹤者是張志新(化名)和其女友劉穎枫攀,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體塘匣,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡脓豪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了忌卤。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扫夜。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出笤闯,到底是詐尸還是另有隱情堕阔,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布颗味,位于F島的核電站超陆,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏浦马。R本人自食惡果不足惜时呀,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望晶默。 院中可真熱鬧谨娜,春花似錦、人聲如沸磺陡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽币他。三九已至坞靶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蝴悉,已是汗流浹背彰阴。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留辫封,地道東北人硝枉。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像倦微,于是被迫代替她去往敵國和親妻味。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

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

  • 1欣福、gulp的安裝 首先確保你已經(jīng)正確安裝了nodejs環(huán)境责球。然后以全局方式安裝gulp: npm install...
    F_imok閱讀 2,378評論 1 11
  • gulpjs是一個前端構(gòu)建工具,與gruntjs相比拓劝,gulpjs無需寫一大堆繁雜的配置參數(shù)雏逾,API也非常簡單,學...
    依依玖玥閱讀 3,155評論 7 55
  • 在現(xiàn)在的前端開發(fā)中郑临,前后端分離栖博、模塊化開發(fā)、版本控制厢洞、文件合并與壓縮仇让、mock數(shù)據(jù)等等一些原本后端的思想開始...
    Charlot閱讀 5,443評論 1 32
  • gulpjs是一個前端構(gòu)建工具典奉,與gruntjs相比,gulpjs無需寫一大堆繁雜的配置參數(shù)丧叽,API也非常簡單卫玖,學...
    小裁縫sun閱讀 929評論 0 3
  • gulpjs是一個前端構(gòu)建工具,與gruntjs相比踊淳,gulpjs無需寫一大堆繁雜的配置參數(shù)假瞬,API也非常簡單,學...
    井皮皮閱讀 1,298評論 0 10