npm install gulp-uglify --save-dev
//基本使用 var gulp = require(‘gulp‘), uglify = require(‘gulp-uglify‘); gulp.task(‘jsmin‘, function () { gulp.src(‘src/js/index.js‘) .pipe(uglify()) .pipe(gulp.dest(‘dist/js‘)); });
//压缩多个js文件 var gulp = require(‘gulp‘), uglify = require(‘gulp-uglify‘); gulp.task(‘jsmin‘, function () { gulp.src([‘src/js/index.js‘,‘src/js/detail.js‘]) //多个文件以数组形式传入 .pipe(uglify()) .pipe(gulp.dest(‘dist/js‘)); });
//匹配符“!”,“*”,“**”,“{}” var gulp = require(‘gulp‘), uglify= require(‘gulp-uglify‘); gulp.task(‘jsmin‘, function () { //压缩src/js目录下的所有js文件 //除了test1.js和test2.js(**匹配src/js的0个或多个子文件夹) gulp.src([‘src/js/*.js‘, ‘!src/js/**/{test1,test2}.js‘]) .pipe(uglify()) .pipe(gulp.dest(‘dist/js‘)); });
//指定变量名不混淆改变 var gulp = require(‘gulp‘), uglify= require(‘gulp-uglify‘); gulp.task(‘jsmin‘, function () { gulp.src([‘src/js/*.js‘, ‘!src/js/**/{test1,test2}.js‘]) .pipe(uglify({ //mangle: true,//类型:Boolean 默认:true 是否修改变量名 mangle: {except: [‘require‘ ,‘exports‘ ,‘module‘ ,‘$‘]}//排除混淆关键字 })) .pipe(gulp.dest(‘dist/js‘)); });
//gulp-uglify其他参数 var gulp = require(‘gulp‘), uglify= require(‘gulp-uglify‘); gulp.task(‘jsmin‘, function () { gulp.src([‘src/js/*.js‘, ‘!src/js/**/{test1,test2}.js‘]) .pipe(uglify({ mangle: true,//类型:Boolean 默认:true 是否修改变量名 compress: true,//类型:Boolean 默认:true 是否完全压缩 preserveComments: ‘all‘ //保留所有注释 })) .pipe(gulp.dest(‘dist/js‘)); });
参考:
http://www.ydcss.com/archives/54
https://github.com/terinjokes/gulp-uglify#user-content-options