Gulp构建

下面演示如何使用Gulp进行项目构建,构建代码已存在于示例项目中。

整体目录结构

—— gulpfile.js
—— /gulp
  —— conf.js     // 构建配置信息
  —— js.js       // JS构建
  —— css.js      // CSS构建

JS构建示例(js.js)

var config = require("./conf");
var path = require("path");
var gulp = require("gulp");
var rimraf = require("rimraf");
var $ = require("gulp-load-plugins")();


gulp.task("js", ["clean:js"], function(){
    gulp.src(config.paths.srcJs)
        .pipe($.babel({
                presets: ['es2015']
            }))
        .pipe($.if(config.system.compressed, $.uglify()))
        .pipe(gulp.dest(config.paths.build));
});


gulp.task("clean:js", function(cb){
    rimraf(config.paths.buildJs, cb);
});


gulp.task("watch:js", function(){
    gulp.watch(config.paths.srcJs, ["js"]);
});


gulp.task("build:js", ["js", "watch:js"]);

CSS构建示例(css.js)

var config = require("./conf");
var path = require("path");
var gulp = require("gulp");
var rimraf = require("rimraf");
var $ = require("gulp-load-plugins")();


gulp.task("css", ["clean:css"], function(){
    var cssFilter = $.filter("**/*.scss");
    gulp.src(config.paths.srcCss)
        .pipe($.sass({ outputStyle: 'expanded'}).on('error', $.sass.logError))
        .pipe($.autoprefixer({
            browsers : ["last 2 version", "Android >= 4.0", "Firefox >= 4.0", "Explorer >= 6"],
            cascade : true}))
        .pipe($.if(config.system.compresses, $.minifyCss()))
        .pipe(gulp.dest(config.paths.build));
});


gulp.task("clean:css", function(cb){
    rimraf(config.paths.buildCss, cb);
});


gulp.task("watch:css", function(){
    gulp.watch(config.paths.srcCss, ["css"]);
})


gulp.task("build:css", ["css", "watch:css"]);

配置文件示例(conf.js)

exports.paths = {
    src : "app"                        // 源文件目录
    ,build : "build"                // 构建目录
    ,srcCss : "app/**/*.scss"        // CSS文件路径
    ,buildCss : "build/**/*.css"    // CSS构建路径
    ,srcJs : "app/**/*.js"            // 源JS文件路径
    ,buildJs : "build/**/*.js"        // JS构建路径
}

exports.system = {
    debug : true,        // 是否是调试状态
    compressed : false    // 是否压缩JS、CSS、HTML
}

入口文件(Gulpfile.js)

'use strict';

var css = require("./gulp/css");
var js = require("./gulp/js")
var gulp = require("gulp");

gulp.task("default", ["build:js", "build:css"]);

results matching ""

    No results matching ""