//获取gulp//require()是 node (CommonJS)中获取模块的语法var gulp=require('gulp');//获取gulp-concat模块(用于合并文件):npm install --save-dev gulp-concatvar concat=require('gulp-concat');//获取gulp-jshint(语法检查):npm install jshintvar jshint=require('gulp-jshint');//获取gulp-uglify组件(用于压缩JS):npm install gulp-uglifyvar uglify=require('gulp-uglify');//获取minify-css模块(用于压缩CSS):npm install gulp-minify-cssvar minifyCSS=require('gulp-minify-css');//获取gulp-imagemin模块:npm instal gulp-imageminvar imagemin=require('gulp-imagemin');//获取gulp-less 模块:npm install gulp-lessvar less=require('gulp-less');//获取gulp-ruby-sass模块:npm install gulp-ruby-sass@1.0.1/*var sass=require('gulp-ruby-sass');*///获取gulp-sass模块:不依赖ruby环境,依赖包:node-sassvar sass=require('gulp-sass');//获取gulp-minify-html模块:npm i gulp-minify-htmlvar minifyHtml=require('gulp-minify-html');//获取gulp-autoprefixer模块:npm i gulp-autoprefixervar autoprefixer = require('gulp-autoprefixer');//获取gulp-watch-path模块:npm install gulp-watch-path//var watchPath=require('gulp-watch-path');//获取gulp-rename(文件重命名):npm install gulp-renamevar rename=require('gulp-rename');//创建任务// 语法检查gulp.task('jshint', function () { return gulp.src('js/*.js') .pipe(jshint()) .pipe(jshint.reporter('default'));});//压缩js文件//在命令行中使用gulp script启动此任务gulp.task('script',function(){ //1.找到文件 gulp.src('js/*.js') //2.压缩文件 .pipe(uglify()) //3.压缩后另存文件 .pipe(gulp.dest('dist/js'))});//创建压缩css任务gulp.task('css',function(){ //1.找到文件 gulp.src('css/*.css') //2.压缩文件 .pipe(minifyCSS()) //3.另存为压缩文件 .pipe(gulp.dest('dist/css')) //4.压缩后的文件重命名为:xx.min.css .pipe(rename({suffix:'.min'})) .pipe(autoprefixer()) .pipe(minifyCSS()) .pipe(gulp.dest('dist/css'))});//创建压缩图片任务//在命令行输入 gulp images 启动此任务gulp.task('images',function(){ //1.找到图片 gulp.src('images/*.*') //2.压缩图片 .pipe(imagemin({ progressive:true })) //3.另存压缩后图片 .pipe(gulp.dest('dist/images'))});//压缩HTML文件//在命令行输入 gulp minifyHTML 启动此任务gulp.task('html', function () { gulp.src('html/*.html') // 要压缩的html文件 .pipe(minifyHtml()) //压缩 .pipe(gulp.dest('dist/html'));});//编译less//在命令行输入 gulp less 启动此任务gulp.task('less',function(){ //1.找到 less 文件 gulp.src('less/**.less') //2.编译为css .pipe(less()) //3.另存文件 .pipe(gulp.dest('dist/css')) //4.重命名,并压缩 .pipe(rename({suffix:'.min'})) .pipe(minifyCSS()) .pipe(gulp.dest('dist/min/css'))});//编译sass//在命令行输入 gulp sass启动此任务gulp.task('sass', function() { gulp.src('sass/*.scss') .pipe(sass()) .pipe(gulp.dest('dist/css')) .pipe(rename({suffix:'.min'})) .pipe(minifyCSS()) .pipe(gulp.dest('dist/min/css'))});//文件合并gulp.task('concat', function () { gulp.src('js/*.js') //要合并的文件 .pipe(concat('all.js')) // 合并匹配到的js文件并命名为 "all.js" .pipe(gulp.dest('dist/js')) .pipe(rename({suffix:'.min'})) .pipe(uglify()) .pipe(gulp.dest('dist/js'))});//autoprefixer,自动补全css3前缀gulp.task('autoprefixer',function(){ return gulp.src('css/*.css') .pipe(autoprefixer({ browsers:['last 2 version'], cascade:false })) .pipe(gulp.dest('dist/css'))})//自动监听:当文件修改时候,自动执行script任务//在命令行使用gulp watch 启动以下任务gulp.task('watch',function(){ gulp.watch('js/*.js',['jshint','script','concat']); gulp.watch('sass/*.scss',['sass','css','autoprefixer']); gulp.watch('css/*.css',['css','autoprefixer']); gulp.watch('html/*.html',['html']);});//使用gulp.task('default') 定义默认任务,即:输入 gulp script 指令时默认启动该任务//在命令行使用 gulp 启动 script 任务 和 auto 任务//停止自动任务:Ctrl + C//多任务执行 gulp +回车gulp.task('default',['jshint','autoprefixer','script','css','html','images','sass','less','watch']);