gulp-css壓縮

gulp是什么纯陨?使用 gulp 實(shí)現(xiàn)圖片壓縮、CSS 壓縮合并趾访、JS 壓縮合并

gulp是一個(gè)基于流的構(gòu)建工具态秧,可以自動(dòng)執(zhí)行指定的任務(wù),簡(jiǎn)潔且高效

  • 開發(fā)環(huán)境下扼鞋,想要能夠按模塊組織代碼申鱼,監(jiān)聽實(shí)時(shí)變化
  • css/js預(yù)編譯,postcss等方案云头,瀏覽器前綴自動(dòng)補(bǔ)全等
  • 條件輸出不同的網(wǎng)頁(yè)捐友,比如app頁(yè)面和mobile頁(yè)面
  • 線上環(huán)境下,我想要合并溃槐、壓縮 html/css/javascritp/圖片匣砖,減少網(wǎng)絡(luò)請(qǐng)求,同時(shí)降低網(wǎng)絡(luò)負(fù)擔(dān)
var gulp = require('gulp');

//引入組件

var minifycss = require('gulp-minify-css'), //css壓縮
    uglify = require('gulp-uglify'), //js壓縮
    concat = require('gulp-concat'), //合并文件
    rename = require('gulp-rename'), //重命名
    clean = require('gulp-clean'), //清空文件夾
    minhtml = require('gulp-htmlmin'), //html壓縮
    jshint = require('gulp-jshint'), //js代碼規(guī)范性檢查
    imagemin = require('gulp-imagemin'); //圖片壓縮

gulp.task('html', function(){
  return gulp.src('src/*.html')
    .pipe(minhtml({collapseWhitespace: true}))
    .pipe(gulp.dest('dist'))
 });

gulp.task('css', function(argument){
  gulp.src('src/*.css')
    .pipe(concat('merge.min.css'))
    .pipe(rename({
        suffix: '.min'
    }))
    .pipe(minfycss())
    .pipe(gulp.dest('dist/css/'))
})

gulp.task('js', function(argument){
  gulp.src('src/js/*.js')
    .pipe(jshint())
    .pipe(jshint.reporter('default'))

    .pipe(concat('merge.js'))
    .pipe(rename({
        suffix: '.min'
    }))
    .pipe(uglify())
    .pipe(gulp.dest('dist/js/'))
 })

gulp.task('img', function(argument){
  gulp.src('src/imgs/*')
    .pipe(imagemin())
    .pipe(gulp.dest('dist/imgs'))
 })

gulp.task('clear', function(){
  gulp.src('dist/*', {read: false})
    .pipe(clean())
 })

gulp.task('build', ['html', 'css', 'js', 'img '])

//執(zhí)行
/*
gulp html //html壓縮
gulp css //css壓縮合并
gulp js //js書寫規(guī)范昏滴,壓縮
gulp img //img壓縮
gulp clear //清空文件夾
gulp build //執(zhí)行以上
*/

簡(jiǎn)單的了解了gulp猴鲫,我們可以試著做個(gè)小小的測(cè)試,看下gulp是怎么壓縮css的

首先我們得做好準(zhǔn)備工作
在gitbash輸入以下幾個(gè)命令行:

  • 全局安裝:npm install gulp-cli -g
  • 當(dāng)前文件夾下安裝: npm install gulp -D 等同于npm install gulp --save-dev
  • 在當(dāng)前文件夾下初始化:npm init (因?yàn)槲覀冃枰粋€(gè)package.json文件)
  • 安裝好這個(gè)cssnano: npm install --save-dev gulp-cssnano(用于壓縮文件)
  • 安裝好這個(gè)concat:npm install --save-dev gulp-concat(用于合并文件)

我們開始第一步具體的操作了:

寫好文件結(jié)構(gòu)谣殊,src用來(lái)放css文件和js文件拂共,dist是輸出目錄,新建gulpfile.js姻几,index.html宜狐,nodejs自動(dòng)生成的package.json

image.png

在gulpfile.js里寫下如下代碼

var gulp = require('gulp')

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

gulp.task('css', function () { // gulp.task創(chuàng)建一個(gè)css任務(wù)

  gulp.src('./src/css/*.css') // 通過src定位到需要去處理的所有css文件,括號(hào)里是地址
    .pipe(concat('index-merge.css')) // 把所有的css文件合并成一個(gè)文件鲜棠,文件名是index-merge.css
    .pipe(cssnano()) // index-merge.css文件傳遞到這里肌厨,進(jìn)行壓縮
    .pipe(gulp.dest('dist/css')) //壓縮之后把文件輸出到dist目錄下的css目錄
})

gulp.task('default', ['css'])

寫好之后編寫我們的css代碼,例如我的html文件里寫下h1,h2,h3標(biāo)簽豁陆,每個(gè)標(biāo)簽單獨(dú)用一個(gè)css文件來(lái)寫它的顏色樣式

image.png

準(zhǔn)備工作做好之后柑爸,我們就可以在命令行里輸入gulp css或者gulp(如果想直接輸如gulp就能壓縮,需要加上最后一句gulp.task('default', ['css'])

輸入之后我們就能看到dist/css目錄下多了個(gè)index-merge.css文件盒音,這樣我們就壓縮好了css文件表鳍,在html里引用這個(gè)生成好的css文件就可以達(dá)到想要效果了


image.png

注意:css合并是按照順序來(lái)合并的!因?yàn)閏ss有權(quán)重的祥诽,注意順序的話就不會(huì)導(dǎo)致權(quán)重不同的被覆蓋
還有譬圣,假如使用npm安裝插件太慢了,可以執(zhí)行
npm install -g cnpm --registry=https://registry.taobao.org
先安裝cnpm雄坪,之后在安裝插件時(shí)用cnpm安裝cnpm install gulp厘熟。

如果你之后需要發(fā)布node工具時(shí)遇到這個(gè)報(bào)錯(cuò)

image.png

說明你是進(jìn)入了私有模式,
需要輸入
npm config set registry http://registry.npmjs.org

設(shè)置回原本的就可以了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市绳姨,隨后出現(xiàn)的幾起案子登澜,更是在濱河造成了極大的恐慌,老刑警劉巖飘庄,帶你破解...
    沈念sama閱讀 221,273評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件脑蠕,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡跪削,警方通過查閱死者的電腦和手機(jī)谴仙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)碾盐,“玉大人晃跺,你說我怎么就攤上這事±” “怎么了哼审?”我有些...
    開封第一講書人閱讀 167,709評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)孕豹。 經(jīng)常有香客問我涩盾,道長(zhǎng),這世上最難降的妖魔是什么励背? 我笑而不...
    開封第一講書人閱讀 59,520評(píng)論 1 296
  • 正文 為了忘掉前任春霍,我火速辦了婚禮,結(jié)果婚禮上叶眉,老公的妹妹穿的比我還像新娘址儒。我一直安慰自己,他們只是感情好衅疙,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評(píng)論 6 397
  • 文/花漫 我一把揭開白布莲趣。 她就那樣靜靜地躺著,像睡著了一般饱溢。 火紅的嫁衣襯著肌膚如雪喧伞。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,158評(píng)論 1 308
  • 那天绩郎,我揣著相機(jī)與錄音潘鲫,去河邊找鬼。 笑死肋杖,一個(gè)胖子當(dāng)著我的面吹牛溉仑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播状植,決...
    沈念sama閱讀 40,755評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼浊竟,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼怨喘!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起逐沙,我...
    開封第一講書人閱讀 39,660評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤哲思,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后吩案,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,203評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡帝簇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評(píng)論 3 340
  • 正文 我和宋清朗相戀三年徘郭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片丧肴。...
    茶點(diǎn)故事閱讀 40,427評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡残揉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出芋浮,到底是詐尸還是另有隱情抱环,我是刑警寧澤,帶...
    沈念sama閱讀 36,122評(píng)論 5 349
  • 正文 年R本政府宣布纸巷,位于F島的核電站镇草,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏瘤旨。R本人自食惡果不足惜梯啤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望存哲。 院中可真熱鬧因宇,春花似錦、人聲如沸祟偷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)修肠。三九已至贺辰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間氛赐,已是汗流浹背魂爪。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留艰管,地道東北人滓侍。 一個(gè)月前我還...
    沈念sama閱讀 48,808評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像牲芋,于是被迫代替她去往敵國(guó)和親撩笆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子捺球,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評(píng)論 2 359

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

  • 前言 眾所周知目前比較火的工具就是gulp和webpack,但webpack和gulp卻有所不同夕冲,本人兩者的底層研...
    cduyzh閱讀 1,369評(píng)論 0 13
  • 安裝Gulp首先需要安裝Node.js氮兵,并在控制臺(tái)輸入$ npm install gulp -gMac端需要寫成$...
    LaBaby_閱讀 927評(píng)論 0 1
  • 什么是GULP? GULP 是前端開發(fā)過程中對(duì)代碼進(jìn)行構(gòu)建的工具,是自動(dòng)化項(xiàng)目的構(gòu)建利器歹鱼;她不僅能 對(duì)...
    碧玉含香閱讀 661評(píng)論 0 0
  • nvm弥姻、node安裝方式一 使用Homebrew 如果之前通過'brew install node'方式安裝過no...
    Y了個(gè)J閱讀 3,607評(píng)論 0 3
  • 參照Gulp for Beginners來(lái)學(xué)習(xí)Gulp基本內(nèi)容抬纸。以下為學(xué)習(xí)記錄筆記吕粹。 安裝Gulp 首先需要安裝N...
    JenniferYe閱讀 2,542評(píng)論 1 17