使用gulp-uglify压缩javascript文件,减少文件大小。javascript
1.一、gulp基本使用还未掌握?请参看: gulp详细入门教程css
1.二、本示例目录结构以下:java
2.一、github:https://github.com/terinjokes/gulp-uglifynode
2.二、安装:命令提示符执行 cnpm install gulp-uglify --save-dev
git
2.三、注意:没有安装cnpm请使用 npm install gulp-uglify --save-dev
。 什么是cnpm,如何安装?github
2.四、说明:--save-dev
保存配置信息至 package.json 的 devDependencies 节点。为何要保存至package.json?npm
3.一、基本使用json
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.二、压缩多个js文件gulp
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.三、匹配符“!”,“*”,“**”,“{}”数组
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.四、指定变量名不混淆改变
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.五、gulp-uglify其余参数 具体参看
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.一、命令提示符执行:gulp jsmin
来源:http://www.ydcss.com/archives/54