outlook 发表于 2017-2-25 09:22:46

gulp教程之gulp-uglify

简介:
  使用gulp-uglify压缩javascript文件,减小文件大小。
1、安装nodejs/全局安装gulp/项目安装gulp/创建package.json和gulpfile.js文件
1.1、gulp基本使用还未掌握?请参看: gulp详细入门教程
1.2、本示例目录结构如下:

2、本地安装gulp-uglify
2.1、github:https://github.com/terinjokes/gulp-uglify
2.2、安装:命令提示符执行 cnpm install gulp-uglify --save-dev
2.3、注意:没有安装cnpm请使用 npm install gulp-uglify --save-dev。 什么是cnpm,如何安装?
2.4、说明:--save-dev 保存配置信息至 package.json 的 devDependencies 节点。为什么要保存至package.json?

3、配置gulpfile.js
3.1、基本使用




JavaScript



1
2
3
4
5
6
7
8

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'));
});3.2、压缩多个js文件




JavaScript



1
2
3
4
5
6
7
8

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'));
});3.3、匹配符“!”,“*”,“**”,“{}”




JavaScript



1
2
3
4
5
6
7
8
9
10

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'));
});3.4、指定变量名不混淆改变




JavaScript



1
2
3
4
5
6
7
8
9
10
11

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'));
});3.5、gulp-uglify其他参数 具体参看




JavaScript



1
2
3
4
5
6
7
8
9
10
11
12

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'));
});4、执行任务
4.1、命令提示符执行:gulp jsmin

5、结束语
  来源:http://www.ydcss.com/archives/54
页: [1]
查看完整版本: gulp教程之gulp-uglify