使用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