原文:http://www.ydcss.com/archives/54
简介:
使用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
简介:
使用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