原 gulp工作中的實戰

2022-01-17 05:03:20 字數 3746 閱讀 5389

寫這篇文章的目的是為了以後的專案中懶得再去配gulp,直接可以拿這篇部落格中的來用,因為有時候配置還是挺煩人的。

1、del 刪除檔案,用於清空檔案

2、browser-sync 用於自動重新整理瀏覽器,從此再也不用f5手動重新整理了

3、gulp-htmlmin 用於壓縮html

4、gulp-clean-css 壓縮css

5、gulp-uglify 壓縮js

6、gulp-replace 替換路徑

7、gulp-base64 將小圖背景圖轉為base64的形式,可以自己設定最大多少尺寸轉為base64

8、gulp-imagemin 壓縮大小,不過效果不明顯,還需要自己再處理一下

其他想用的外掛程式可以自己去找,基本可以專案的需要,不夠就去加就行

1、由於專案中靜態資源需要替換成公司的cdn,而且公司中的專案已經公升級為https,所以這裡弄了乙個配置檔案

config.js:

var projeact = 'awardsong'; //

專案名var terminal ='mobile'; //

具體哪個端(pc、mobile..)

var commit = 'e:/work'; //

測試環境

module.exports =

2、平時我是用sass來進行編碼的,所以弄了乙個sass目錄,css裡面的檔案不用寫。執行編譯的時候會自動將sass編譯到css檔案中。

3、開發環境,執行gulp default即可,然後在瀏覽器中選擇你在編譯的html,每次執行編譯的時候,只要編輯器儲存了**,瀏覽器會做相應的改變。無需重新整理。

4、如果要打包到生產環境,也就是發布到線上,可以執行gulp release,這樣的話所有的靜態檔案就會打包到dist的目錄下,而且所以的檔案都是經過壓縮的。當然,輸出路徑也是可以自己替換的

目錄結構:

projecdname

+src

-css

-html

-images

-js-sass

-config.js

-gulpfile.js

-package.json

package.json檔案內容如下:

,

"author": "",

"license": "isc",

"devdependencies":

}

gulpfile.js內容如下

/*

* @gulp:自動化任務

*/var gulp = require('gulp');

var rm = require('del'); //

刪除檔案

var browsersync = require('browser-sync');

var reload = browsersync.reload; //

自動重新整理,從此不用f5

var htmlmin = require('gulp-htmlmin'); //

壓縮html

var minicss = require('gulp-clean-css'); //

壓縮css

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

壓縮js

var sass = require('gulp-sass'); //

編譯sass

var run_os_cmd = require('child_process').exec;

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

var cssbase64 = require('gulp-base64'); //

將小圖背景圖轉為base64的形式

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

/*清除產出目錄

*/gulp.task('clear-dir', function

() )

//引入配置檔案

var config = require('./config.js');

var cdn=config.cdn[0];

/** html壓縮

* 乾掉http:和https:協議名

* 替換掉路徑

*/gulp.task('mini-html', function

() ))

.pipe(replace(/\.\.\/(css\/\s+\.(css|less|scss))/g,function

(all,str)))

.pipe(replace(/\.\.\/(js\/\s+\.(js))/g,function

(all,str)))

.pipe(htmlmin())

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

})/*

產出*/

gulp.task('images', function

() ))

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

})/*

sass開發

*/gulp.task('sass_dev', function

() ))

})/*

css壓縮

* js壓縮

* 乾掉http:和https:協議名

*/gulp.task('mini-js', function

() )

/*自動重新整理

*/gulp.task('server', function

() ,

notify:

false

, ghostmode:

false

, port: 8080,

open: "external"},

function

(err, arg) )

})/*

開發環境

*/gulp.task('default', [

'sass_dev',

'server'],

function

() )

/*生產環境

*/gulp.task('release', [

'clear-dir',

'mini-html',

'mini-css',

'mini-js',

'images'],

function

() )

專案的實際操作我發布到github了,有興趣的可以搞一搞:

備註:**比較簡單,有一定gulp基礎的都可以看的懂。主要是為了以後方便,直接拿來用即可,無需再去配置啊什麼鬼。

要在適合的時機切入到實戰工作中

老男孩語錄 要在適合思維時機切入到實戰工作中 等跟老師都學會了在找去工作,這樣的思想是不對的!第一,知識是無限的,永遠學不完,光老男孩培訓的linux運維課程就5個級別,你們現在才是1級啊。第二,沒有去實踐工作,永遠都感覺沒完全學會。第三,實戰中的進步才是最快的,也是最有價值的。你看微軟的系統,如果...

要在適合的時機切入到實戰工作中

老男孩語錄 要在適合思維時機切入到實戰工作中 等跟老師都學會了在找去工作,這樣的思想是不對的!第一,知識是無限的,永遠學不完,光老男孩培訓的linux運維課程就5個級別,你們現在才是1級啊。第二,沒有去實踐工作,永遠都感覺沒完全學會。第三,實戰中的進步才是最快的,也是最有價值的。你看微軟的系統,如果...

要在適合的時機切入到實戰工作中

老男孩語錄 要在適合思維時機切入到實戰工作中 等跟老師都學會了在找去工作,這樣的思想是不對的!第一,知識是無限的,永遠學不完,光老男孩培訓的linux運維課程就5個級別,你們現在才是1級啊。第二,沒有去實踐工作,永遠都感覺沒完全學會。第三,實戰中的進步才是最快的,也是最有價值的。你看微軟的系統,如果...