var gulp = require('gulp'), htmlmin = require("gulp-htmlmin"), //压缩html cleanCss = require("gulp-clean-css"), //压缩css imagemin = require("gulp-imagemin"), //压缩图片 connect = require("gulp-connect"), cached = require("gulp-cached"), uglify = require('gulp-uglify'), //压缩js fileInclude = require('gulp-file-include'), autoprefixer = require('gulp-autoprefixer'), //兼容浏览器前缀 del = require('del') rev = require('gulp-rev-append')//给页面的引用添加版本号,清除页面引用缓存 gulp.task('webserver', function () { connect.server({ root: 'public', host: '127.0.0.1', // port: 80 }); }); gulp.task('js', function () { return gulp.src('src/js/*.js') .pipe(uglify()) .pipe(gulp.dest('public/js')) }); gulp.task('css', function () { return gulp.src("src/css/*.css") .pipe(autoprefixer()) .pipe(cleanCss({ compatibility: 'ie8' })) .pipe(gulp.dest('public/css')) }); gulp.task('zip', function () { return gulp.src("src/static/*.zip") .pipe(gulp.dest('public/static')) }); gulp.task('image', function () { return gulp.src('src/img/*.{jpg,png,gif,svg}') //要处理的图片目录为img目录下的所有的.jpg .png .gif 格式的图片; .pipe(cached(imagemin())) .pipe(gulp.dest('public/img')) }); gulp.task('fileinclude', function () { return gulp.src(['src/*/*.json', 'src/*.html']) .pipe(fileInclude({ prefix: '@@', basepath: '@file' })) .pipe(rev()) .pipe(htmlmin({ collapseWhitespace: true, removeComments: true })) .pipe(gulp.dest('public')); }); gulp.task('testFile', function(){ return gulp.src(['src/test/**/*.*']) .pipe(gulp.dest('public/test')); }) gulp.task('watch', function () { gulp.watch('src/css/*.css', ['css', 'fileinclude']); gulp.watch(['src/js/*.*'], ['fileinclude', 'js']); gulp.watch('src/img/*.*', ['image', 'fileinclude']); gulp.watch(['src/**.html'], ['fileinclude']); gulp.watch(['src/**.zip'], ['zip']); gulp.watch(['src/test/*'], ['testFile']); }) gulp.task('clean', function () { return del('public'); }); gulp.task('default', ['clean'], function () { gulp.start('fileinclude', 'css', 'image', 'js', 'webserver', 'watch','zip', 'testFile'); }); gulp.task('prod', ['clean'], function () { gulp.start('fileinclude', 'css', 'image', 'js','zip', 'testFile'); })