UNPKG

uglify-js-plugin

Version:
43 lines (38 loc) 1.49 kB
var UglifyJS = require("uglify-js"), colors = require("colors"); var debug = false; function log(info) { debug && console.log(info.blue); } function UglifyJsPlugin(options) { this.options = options || {}; this.options.compress = this.options.compress === undefined ? true : this.options.compress; this.options.fromString = true; //enable pass JavaScript source code, rather than file names. } UglifyJsPlugin.prototype.apply = function (compiler) { var options = this.options; debug = options.debug; compiler.plugin('emit', function (compilation, callback) { log('start UglifyJS:'); compilation.chunks.forEach(function (chunk) { log(' UglifyJS chunk[' + chunk.name + ']: ' + chunk.files.join(' | ')); options.compress && chunk.files.forEach(function (filename) { if (/\.js$/.test(filename)) { var source = compilation.assets[filename].source(); var result = UglifyJS.minify(source, options); compilation.assets[filename] = { source: function () { return result.code; }, size: function () { return result.code.length; } }; } }); }); log('finish UglifyJS:'); callback(); }); }; module.exports = UglifyJsPlugin;