gulp=require('gulp') del=require('del') runSequence = require('run-sequence') #安装任务队列插件run-sequence,可以执行我们的task任务 #并且指定任务的执行顺序 uglify=require('gulp-uglify')#压缩js文件 minifyCss=require('gulp-minify-css')#压缩css文件 #unCss = require('gulp-uncss') browserSync = require('browser-sync').create() #task指定任务第一个参数是任务名称 为default就是 #默认任务,第二个参数要执行的任务回调函数 #新建默认任务 gulp.task('default',(callback)-> runSequence(['clean'],['build'],['server','watch'],callback) #run-sequence 处理,可定义 异步( 并行 )和 同步 队列。 #参数与参数之间的任务按顺序执行(同步) #同一参数数组中的任务是并列同时执行(异步) ) #直接删除dist目录,方便重新构建 gulp.task('clean',(callback)-> del(['./dist'],callback) ) #创建build任务链,按顺序执行copy minijs minicss任务 gulp.task('build',(callback)-> runSequence(['copy'],['minijs'],['minicss'],callback) ) #src下**所有文件夹 *.* 所有文件 gulp.task('copy',-> gulp.src('./src/**/*.*') .pipe(gulp.dest('./dist/')) ) #压缩src下所有的js文件的任务 gulp.task('minijs',-> gulp.src('./src/**/*.js') #通过pipe管道读取的js数据流流经uglify处理 #变成压缩后的数据流 .pipe(uglify()) .pipe(gulp.dest('./dist/')) ) #压缩src下所有的css文件的任务 gulp.task('minicss',-> gulp.src('./src/**/*.css') .pipe(minifyCss()) # .pipe(unCss()) .pipe(gulp.dest('./dist/')) ) #新建一个任务 将所有的自己写的js文件拼接成 #all.js文件 gulp.task('concat',-> gulp.src('./src/*.js') .pipe(concat('all.js',{newLine:';\n'})) .pipe(gulp.dest('./dist/')) ) #新建创建服务器的任务,来让浏览器运行我们的前端页面 gulp.task('server', -> browserSync.init({ server:{ baseDir:'./dist/' } port:7411 }) ) #监视文件是否改变 gulp.task('watch',-> gulp.watch('./src/**/*.*',['reload']) ) #文件修改后要自动执行的任务 #把上面的任务再做一次 gulp.task('reload',(callback)-> runSequence(['build'],['reload-browser'],callback) ) #刷新浏览器的任务 gulp.task('reload-browser',-> browserSync.reload() )