簡介:
使用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、基本使用
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文件
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、匹配符“!”,“*”,“**”,“{}”
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、指定變量名不混淆改變
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其他參數 具體參看
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