这里只针对js代码进行单个压缩操作,并去除console等,下一篇会加入对html以及css的压缩。配置如下:
var gulp = require("gulp"),//gulp基础包
clean = require("gulp-clean"),//清理之前文件和文件夹
jshint = require('gulp-jshint'),//js检测
rename = require("gulp-rename"),//重命名
uglify = require("gulp-uglify"),//压缩js
stripDebug = require("gulp-strip-debug"),//移除console语句
notify = require('gulp-notify');//提示信息
// 检查js
gulp.task('jslint', function () {
return gulp.src('Scripts/web/*.js','Scripts/web/**/*.js','Scripts/service/*.js')
.pipe(jshint())
.pipe(jshint.reporter('default'))
.pipe(notify({message: '检查完成'}));
});
/**
* 清空目标目录
*/
gulp.task('clean', function() {
return gulp.src('dist')
.pipe(clean())
})
//压缩组件页面js代码
gulp.task('minifyjs', function () {
return gulp.src(['Scripts/web/*.js', "Scripts/web/**/*.js"])
//.pipe(rename({suffix: '.min'}))
.pipe(
uglify({
mangle:false,//类型:Boolean 默认:true 是否修改变量名
compress:true,//类型:Boolean 默认:true 是否完全压缩
//preserveComments: all //保留所有注释
})
)
.pipe(stripDebug())
.pipe(gulp.dest('dist/Scripts/web'))
.pipe(notify({ message: '压缩完成' }));
});
//压缩服务层代码
gulp.task('mininserjs',function(){
return gulp.src(['Scripts/service/*.js'])
//.pipe(rename({suffix: '.min'}))
.pipe(
uglify({
mangle:false,//类型:Boolean 默认:true 是否修改变量名
compress:true,//类型:Boolean 默认:true 是否完全压缩
//preserveComments: all //保留所有注释
})
)
.pipe(stripDebug())
.pipe(gulp.dest('dist/Scripts/service'))
.pipe(notify({ message: '压缩完成' }));
});
// 默认任务
gulp.task('default',['clean'], function () {
gulp.run('minifyjs','mininserjs');
// 监听js文件变化
gulp.watch(['Scripts/**/*.js']);
});