UNPKG

1.12 kBJavaScriptView Raw
1const uglifier = require('./lib/uglifier');
2
3function sourceMapError(lib) {
4 return `You should not pass options.${lib}.sourceMap, did you mean options.sourceMap?`;
5}
6
7function FasterUglifyPlugin(options) {
8 if (options.uglifyJS && options.uglifyES) {
9 throw new TypeError('You cannot use both uglifyJS and uglifyES for the same plugin.');
10 }
11
12 if (options.uglifyJS && options.uglifyJS.sourceMap) {
13 throw new TypeError(sourceMapError('uglifyJS'));
14 }
15
16 if (options.uglifyES && options.uglifyES.sourceMap) {
17 throw new TypeError(sourceMapError('uglifyES'));
18 }
19 this.options = options;
20
21 if (!(this.options.uglifyJS || this.options.uglifyES)) {
22 this.options.uglifyJS = {};
23 }
24}
25
26FasterUglifyPlugin.prototype.apply = function apply(compiler) {
27 compiler.plugin('compilation', compilation => {
28 compilation.plugin('optimize-chunk-assets', (chunks, callback) => {
29 uglifier.processAssets(compilation, this.options).then(() => {
30 callback();
31 });
32 });
33 });
34
35 compiler.plugin('done', () => {
36 uglifier.pruneCache(this.options);
37 });
38};
39
40module.exports = FasterUglifyPlugin;