laravel中使用gulp打包發(fā)布前端部分

laravel中的前端代碼都是形如xxx.blade.php擅耽×肝耄可以使用前端的工具來對(duì)blade,css,js進(jìn)行壓縮嗎蚊荣?當(dāng)然,gulp可以做到莫杈。

gulp是什么互例?

看完你就明白,這是個(gè)自動(dòng)化構(gòu)建工具的核心就是gulpfile.js筝闹。
用于laravel的gulp怎么寫媳叨?
把一切****.html換成****.blade.php就行了。

有什么坑要注意关顷?

  1. 異步執(zhí)行糊秆,前后依賴關(guān)系必須寫明。比如:
gulp.task('rev' , ['concatCss', 'concatJs'],function() {
    return gulp.src(['./rev/**/*.json', paths.html])   //- 讀取 rev-manifest.json 文件以及需要進(jìn)行css名替換的文件
        .pipe(revCollector(
            {
                replaceReved: true,
                dirReplacements: {
                    'css': 'css',
                    'js': 'js',
                }
            }
        ))                                
        .pipe(gulp.dest(dist));                 
});

這里先異步執(zhí)行concatCss和concatJs兩個(gè)task议双,然后執(zhí)行dev痘番。

  1. 在對(duì)css和js文件拼接md5后綴的時(shí)候,要按照官方文檔的方式來寫平痰。

最后附上gulpfile.js的代碼:

var gulp = require('gulp');
var uglify = require('gulp-uglify');
var rev = require('gulp-rev');
var revCollector = require('gulp-rev-collector');
var cleanCSS = require('gulp-clean-css');
var htmlmin = require('gulp-htmlmin');

var paths = {
    css: "css/*.css",
    js: "js/*.js",
    html: "./*.blade.php"
    
};
var dist = "./dist/";   //寫的很簡(jiǎn)單汞舱,都發(fā)布到dist下。在laravel下可以配置不同文件類型的發(fā)布路徑宗雇。

gulp.task('compressHtml',['rev'],function () {
    var options = {
        removeComments: true,//清除HTML注釋
        removeScriptTypeAttributes: true,//刪除`<script>`的type="text/javascript"
        removeStyleLinkTypeAttributes: true,//刪除`<style`>和`<link>`的type="text/css"
        minifyCSS: true,//壓縮頁面CSS
        collapseWhitespace: true,
        minifyJS: true,
    };
    return gulp.src(dist+'*.blade.php')
        .pipe(htmlmin(options))
        .pipe(gulp.dest(dist));
});

gulp.task('concatCss',function() {                                //- 創(chuàng)建一個(gè)名為 concat 的 task
    return gulp.src(paths.css)  //- 需要處理的css文件昂芜,放到一個(gè)字符串?dāng)?shù)組里
        .pipe(rev())                                           //- 文件名加MD5后綴
        .pipe(cleanCSS({compatibility: 'ie8'}))
        .pipe(gulp.dest(dist+'css/'))                              //- 輸出文件本地
        .pipe(rev.manifest())                                  //- 生成一個(gè)rev-manifest.json
        .pipe(gulp.dest('./rev/css'));                            //- 將 rev-manifest.json 保存到 rev 目錄內(nèi)

});
gulp.task('concatJs', function() {                                //- 創(chuàng)建一個(gè)名為 concat 的 task
    return gulp.src(paths.js)  //- 需要處理的css文件,放到一個(gè)字符串?dāng)?shù)組里
        .pipe(rev())                                           //- 文件名加MD5后綴
        .pipe(uglify())
        .pipe(gulp.dest(dist+"js/"))
        .pipe(rev.manifest())                                  //- 生成一個(gè)rev-manifest.json
        .pipe(gulp.dest('./rev/js'));                            //- 將 rev-manifest.json 保存到 rev 目錄內(nèi)

});
gulp.task('rev' , ['concatCss', 'concatJs'],function() {
    return gulp.src(['./rev/**/*.json', paths.html])   //- 讀取 rev-manifest.json 文件以及需要進(jìn)行css赔蒲,js名替換的文件
        .pipe(revCollector(
            {
                replaceReved: true,
                dirReplacements: {
                    'css': 'css',  //這里是把文件中的css換成別的字符串泌神,可以拼接發(fā)布目錄
                    'js': 'js',    //道理同上
                }
            }
        ))                                 
        .pipe(gulp.dest(dist));                 

});

gulp.task('default', ['compressHtml']);

在命令行運(yùn)行g(shù)ulp default
然后去dist里面看看生成了什么吧良漱。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市欢际,隨后出現(xiàn)的幾起案子母市,更是在濱河造成了極大的恐慌,老刑警劉巖损趋,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件窒篱,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡舶沿,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門配并,熙熙樓的掌柜王于貴愁眉苦臉地迎上來括荡,“玉大人,你說我怎么就攤上這事溉旋』澹” “怎么了?”我有些...
    開封第一講書人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵观腊,是天一觀的道長(zhǎng)邑闲。 經(jīng)常有香客問我,道長(zhǎng)梧油,這世上最難降的妖魔是什么苫耸? 我笑而不...
    開封第一講書人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮儡陨,結(jié)果婚禮上褪子,老公的妹妹穿的比我還像新娘。我一直安慰自己骗村,他們只是感情好嫌褪,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著胚股,像睡著了一般笼痛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上琅拌,一...
    開封第一講書人閱讀 50,084評(píng)論 1 291
  • 那天缨伊,我揣著相機(jī)與錄音,去河邊找鬼财忽。 笑死倘核,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的即彪。 我是一名探鬼主播紧唱,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼活尊,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了漏益?” 一聲冷哼從身側(cè)響起蛹锰,我...
    開封第一講書人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎绰疤,沒想到半個(gè)月后铜犬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡轻庆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年癣猾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片余爆。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡纷宇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蛾方,到底是詐尸還是另有隱情像捶,我是刑警寧澤,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布桩砰,位于F島的核電站拓春,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏亚隅。R本人自食惡果不足惜硼莽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望枢步。 院中可真熱鬧沉删,春花似錦、人聲如沸醉途。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽隘擎。三九已至殴穴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間货葬,已是汗流浹背采幌。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留震桶,地道東北人休傍。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像蹲姐,于是被迫代替她去往敵國(guó)和親磨取。 傳聞我的和親對(duì)象是個(gè)殘疾皇子人柿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351

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

  • gulpjs是一個(gè)前端構(gòu)建工具,與gruntjs相比忙厌,gulpjs無需寫一大堆繁雜的配置參數(shù)凫岖,API也非常簡(jiǎn)單,學(xué)...
    井皮皮閱讀 1,293評(píng)論 0 10
  • gulpjs是一個(gè)前端構(gòu)建工具逢净,與gruntjs相比哥放,gulpjs無需寫一大堆繁雜的配置參數(shù),API也非常簡(jiǎn)單爹土,學(xué)...
    小裁縫sun閱讀 923評(píng)論 0 3
  • 1甥雕、gulp的安裝 首先確保你已經(jīng)正確安裝了nodejs環(huán)境。然后以全局方式安裝gulp: npm install...
    F_imok閱讀 2,367評(píng)論 1 11
  • gulpjs是一個(gè)前端構(gòu)建工具胀茵,與gruntjs相比犀农,gulpjs無需寫一大堆繁雜的配置參數(shù),API也非常簡(jiǎn)單宰掉,學(xué)...
    build1024閱讀 527評(píng)論 0 0
  • gulpjs是一個(gè)前端構(gòu)建工具,與gruntjs相比赁濒,gulpjs無需寫一大堆繁雜的配置參數(shù)轨奄,API也非常簡(jiǎn)單,學(xué)...
    依依玖玥閱讀 3,150評(píng)論 7 55