var gulp = require('gulp'); var gutil = require('gulp-util'); var uglify = require('gulp-uglify'); var combiner = require('stream-combiner2'); var sourcemaps = require('gulp-sourcemaps'); var minifycss = require('gulp-clean-css'); var autoprefixer = require('gulp-autoprefixer'); var imagemin = require('gulp-imagemin'); var fileinclude = require('gulp-file-include'); var rename = require('gulp-rename'); var concat = require("gulp-concat"); var clean = require('del'); var less = require('gulp-less'); var postcss = require('gulp-postcss'); var px2rem = require('postcss-px2rem');
var browserSync = require('browser-sync').create();
gulp.task('browser', function() { var files = [ '**/*.html', '**/*.css', '**/*.png', '**/*.js' ]; browserSync.init(files,{ server: { baseDir: "./dist" } }); });
var handleError = function (err) { var colors = gutil.colors; console.log('\n'); gutil.log(colors.red('Error!')); gutil.log('fileName: ' + colors.red(err.fileName)); gutil.log('lineNumber: ' + colors.red(err.lineNumber)); gutil.log('message: ' + err.message); gutil.log('plugin: ' + colors.yellow(err.plugin)); };
gulp.task('clean:all', function (cb) { clean('dist/*', cb); });
gulp.task('compile:js', function () { var combined = combiner.obj([ sourcemaps.init(), gulp.src('src/js/*.js'), uglify(), sourcemaps.write('./'), gulp.dest('dist/js/') ]); combined.on('error', handleError) });
gulp.task('compile:less', function () { var processors = [px2rem({remUnit: 75})]; var combined = combiner.obj([ gulp.src('src/less/*.less'), sourcemaps.init(), autoprefixer({ browsers: 'last 2 versions' }), less(), postcss(processors), minifycss(), sourcemaps.write('./'), gulp.dest('dist/css/') ]); combined.on('error', handleError) });
gulp.task('build:weuix', function () { var combined = combiner.obj([ gulp.src(['src/css/weui.css', 'src/css/frame.css']), sourcemaps.init(), concat('weuix.min.css"'), rename("weuix.min.css"), minifycss(), sourcemaps.write('./'), gulp.dest('dist/css/') ]); combined.on('error', handleError) });
gulp.task('compile:image', function () { var combined = combiner.obj([ gulp.src("src/images/*.{jpg,jpeg,png,gif}"), imagemin(), gulp.dest('dist/images/') ]); combined.on('error', handleError) });
gulp.task('compile:include', function () { gulp.src(["src/*.html"]) .pipe(fileinclude({ prefix: '@@', basepath: '@file' })) .pipe(gulp.dest('dist/')); });
gulp.task('watch:all', function () { gulp.watch('src/js/*.js', ["compile:js"]); gulp.watch('src/less/*.less', ["compile:less"]); gulp.watch('src/css/*.css', ["build:weuix"]); gulp.watch(['src/*.tpl', 'src/*.html'], ["compile:include"]); gulp.watch('src/images/*.{jpg,jpeg,png,gif}', ["compile:image"]) });
gulp.task("init", ["clean:all", 'compile:js', 'compile:less', 'build:weuix', 'compile:include', 'compile:image']);
gulp.task('default', ['watch:all','browser']);
|