Minify JavaScript with UglifyJS2.
Install package with NPM and add it to your development dependencies:
npm install --save-dev gulp-uglify
var uglify = require('gulp-uglify');
gulp.task('compress', function() {
return gulp.src('lib/*.js')
.pipe(uglify())
.pipe(gulp.dest('dist'));
});
-
mangle
Pass
false
to skip mangling names. -
output
Pass an object if you wish to specify additional output options. The defaults are optimized for best compression.
-
compress
Pass an object to specify custom compressor options. Pass
false
to skip compression completely. -
preserveComments
A convenience option for
options.output.comments
. Defaults to preserving no comments.-
all
Preserve all comments in code blocks
-
some
Preserve comments that start with a bang (
!
) or include a Closure Compiler directive (@preserve
,@license
,@cc_on
) -
function
Specify your own comment preservation function. You will be passed the current node and the current comment and are expected to return either
true
orfalse
.
-
-
banner
This string will be prepended to the minified output.
eg:
var gulp = require('gulp'); var config = require('../config').production; var size = require('gulp-filesize'); var uglify = require('gulp-uglify'); var gutil = require('gulp-util'); var today = gutil.date('yyyy-mm-dd HH:MM'); gulp.task('uglifyJs', ['browserify'], function() { return gulp.src(config.jsSrc) .pipe(uglify({compress: {drop_console: true}, banner: '/* @date:'+ config.v + ' ' + today + ' */\n'})) .pipe(gulp.dest(config.jsDest)) .pipe(size()); });
You can also pass the uglify
function any of the options listed
here to modify
UglifyJS's behavior.
gulp-uglify
emits an 'error' event if it is unable to minify a specific file.
Wherever possible, the PluginError object will contain the following properties:
fileName
lineNumber
message
To handle errors across your entire pipeline, see the gulp documentation.