gulp的配置使用

自動構建工具祟蚀,優(yōu)點

- 易于使用
  代碼優(yōu)于配置策略,復雜任務可管理
- 構建快速
  快速構建情妖,減少頻繁IO
- 插件高質
  嚴格的插件指南
- 易于學習
  • 安裝
// 全局安裝
npm install -g gulp
// 本地安裝作為項目依賴
npm install gulp --save-dev
  • 執(zhí)行
// 執(zhí)行任務列表
gulp <task> <othertask>
// 執(zhí)行注冊名為default的task吮播,不存在則會報錯
gulp
  • 參數(shù)標記
-v/--version:  顯示gulp版本號
--require <module path>:  執(zhí)行前require一個模塊
--gulpfile <gulpfile path>:  手動指定gulpfile路徑
--cwd <dir path>: 手動指定cwd锅论,定義gulpfile查找的位置
-T/--tasks:  顯示
  • API
gulp.src(globs[, options])
gulp.dest(path[, options])
gulp.task(name[, deps], fn)
gulp.watch(glob[, opts], tasks)
gulp.watch(glob[, opts, cb])
  • gulp的簡單配置
// gulpfile.js
'use strict';
var gulp = require('gulp');
var less = require('gulp-less');
var minifycss = require('gulp-minify-css');
var rename = require("gulp-rename");
var browserSync = require('browser-sync');
var reload = browserSync.reload;
var gutil = require('gulp-util');
// load plugins
var $ = require('gulp-load-plugins')();
var hash = require('gulp-hash');
var inject = require('gulp-inject');
// handle *.less
gulp.task('styles', function() {
  return gulp.src(['less/index.less'])
  .pipe(less())
  .pipe($.autoprefixer('last 1 version'))
  .pipe(minifycss())
  .pipe(gulp.dest('css'))
  .pipe(reload({stream: true}))
  .pipe($.size())
});
// handle *.js
gulp.task('scripts', function() {
  return gulp.src('js/index.js')
    .pipe($.jshint())
    .pipe($.jshint.reporter(require('jshint-stylish')))
    .pipe(gulp.dest('js'))
    .pipe($.size());
});
// handle html, depend on styles and scripts
gulp.task('html', ['scripts', 'styles'], function() {
  var jsFilter = $.filter('**/*.js', {restore: true}),
    cssFilter = $.filter('**/*.css', {restore: true});
// 多層級目錄時:gulp.src(['index.html', 'xx/**/*.html])
  return gulp.src('index.html')
    .pipe($.useref())
    .pipe(jsFilter)
    .pipe(hash({hashLength: 12}))
    .pipe($.uglify())
    .pipe(jsFilter.restore)
    .pipe(cssFilter)
    .pipe(hash({hashLength: 12}))
    .pipe($.csso())
    .pipe(cssFilter.restore)
    .pipe($.useref())
    .pipe(gulp.dest('dist'))
    .pipe($.size());
});
// handle images
gulp.task('images', function() {
  return gulp.src('images/*')
    .pipe(gulp.dest('dist/images'))
    .pipe(reload({stream: true, once: true}))
    .pipe($.size());
});
// clean
gulp.task('clean', function() {
  return gulp.src(['dist'], {read: false}).pipe($.clean());
});
// inject
gulp.task('inject', ['html'], function() {
  var target = gulp.src('dist/*.html'),
    sources = gulp.src([ 'dist/js/vendor-*.js', 'dist/js/index-*.js','dist/css/index-*.css'], {read: false});
  return target.pipe(inject(sources, {relative: true}))
    .pipe(gulp.dest('dist'));
});
// build
gulp.task('build', ['clean'], function() {
  gulp.start(['inject', 'images']);
});
// dev
gulp.task('dev', ['watch']);
// default
gulp.task('default', ['clean'], function() {
  gulp.start('build');
});
// browserSync
gulp.task('serve', ['styles'], function () {
    browserSync.init({
        port: 3200,
        server: {
            baseDir: ''
        }
    });
});
// watch
gulp.task('watch', ['serve'], function () {
    // watch for changes
    // 多層級目錄時:gulp.src(['index.html', 'xx/**/*.html])
    gulp.watch(['index.html'], reload);

    gulp.watch('less/**/*.less', ['styles']);
    gulp.watch('js/**/*.js', ['scripts']);
    gulp.watch('img/**/*', ['images']);
});
// index.html
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <!-- inject:css -->
    <!-- build:css css/index.css -->
    <link rel="stylesheet" href="css/index.css">
    <!-- endbuild -->
    <!-- endinject -->
  </head>
  <body>
    
  </body>
  <!-- inject:js -->
  <!-- build:js js/vendor.js -->
  <script src="vendor/lib.js"></script>
  <!-- endbuild -->
  <!-- build:js js/index.js -->
  <script src="js/index.js"></script>
  <!-- endbuild -->
  <!-- endinject -->
</html>
// 多層級目錄時:資源使用相對路徑,鏈接使用絕對路徑
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末吉懊,一起剝皮案震驚了整個濱河市铸史,隨后出現(xiàn)的幾起案子鼻疮,更是在濱河造成了極大的恐慌,老刑警劉巖琳轿,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件判沟,死亡現(xiàn)場離奇詭異,居然都是意外死亡崭篡,警方通過查閱死者的電腦和手機挪哄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來琉闪,“玉大人迹炼,你說我怎么就攤上這事〉弑校” “怎么了斯入?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長吟秩。 經常有香客問我咱扣,道長绽淘,這世上最難降的妖魔是什么涵防? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮沪铭,結果婚禮上壮池,老公的妹妹穿的比我還像新娘。我一直安慰自己杀怠,他們只是感情好椰憋,可當我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著赔退,像睡著了一般橙依。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上硕旗,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天窗骑,我揣著相機與錄音,去河邊找鬼漆枚。 笑死创译,一個胖子當著我的面吹牛,可吹牛的內容都是我干的墙基。 我是一名探鬼主播软族,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼刷喜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了立砸?” 一聲冷哼從身側響起掖疮,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎颗祝,沒想到半個月后氮墨,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡吐葵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年规揪,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片温峭。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡猛铅,死狀恐怖,靈堂內的尸體忽然破棺而出凤藏,到底是詐尸還是另有隱情奸忽,我是刑警寧澤,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布揖庄,位于F島的核電站栗菜,受9級特大地震影響,放射性物質發(fā)生泄漏蹄梢。R本人自食惡果不足惜疙筹,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望禁炒。 院中可真熱鬧而咆,春花似錦、人聲如沸幕袱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽们豌。三九已至涯捻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間望迎,已是汗流浹背障癌。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留擂煞,地道東北人混弥。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蝗拿。 傳聞我的和親對象是個殘疾皇子晾捏,可洞房花燭夜當晚...
    茶點故事閱讀 43,554評論 2 349

推薦閱讀更多精彩內容

  • gulpjs是一個前端構建工具,與gruntjs相比哀托,gulpjs無需寫一大堆繁雜的配置參數(shù)惦辛,API也非常簡單,學...
    井皮皮閱讀 1,292評論 0 10
  • gulpjs是一個前端構建工具仓手,與gruntjs相比胖齐,gulpjs無需寫一大堆繁雜的配置參數(shù),API也非常簡單嗽冒,學...
    小裁縫sun閱讀 922評論 0 3
  • gulpjs是一個前端構建工具呀伙,與gruntjs相比,gulpjs無需寫一大堆繁雜的配置參數(shù)添坊,API也非常簡單剿另,學...
    依依玖玥閱讀 3,149評論 7 55
  • 1、gulp的安裝 首先確保你已經正確安裝了nodejs環(huán)境贬蛙。然后以全局方式安裝gulp: npm install...
    F_imok閱讀 2,364評論 1 11
  • 安裝Gulp首先需要安裝Node.js雨女,并在控制臺輸入$ npm install gulp -gMac端需要寫成$...
    LaBaby_閱讀 910評論 0 1