使用gulp压缩混淆js代码

4,992 阅读1分钟

这里只针对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']);
});