Move WPO to the minify step
Summary: public The Whole Program Optimisation (WPO) pass is quite slow, and can make it painful to iterate when having `dev=false`. Move it to happen only when both `dev=false` and `minify=true`. Reviewed By: davidaurelio Differential Revision: D2773941 fb-gh-sync-id: ac5ca4e1286e233c2d175eecdbf7494d5d3497b2
This commit is contained in:
parent
739a6d6be1
commit
f546dc3790
|
@ -109,24 +109,6 @@ class Bundle {
|
||||||
}
|
}
|
||||||
|
|
||||||
this._source = _.pluck(this._modules, 'code').join('\n');
|
this._source = _.pluck(this._modules, 'code').join('\n');
|
||||||
|
|
||||||
if (dev) {
|
|
||||||
return this._source;
|
|
||||||
}
|
|
||||||
|
|
||||||
const wpoActivity = Activity.startEvent('Whole Program Optimisations');
|
|
||||||
const result = require('babel-core').transform(this._source, {
|
|
||||||
retainLines: true,
|
|
||||||
compact: true,
|
|
||||||
plugins: require('../transforms/whole-program-optimisations'),
|
|
||||||
inputSourceMap: this.getSourceMap(),
|
|
||||||
});
|
|
||||||
|
|
||||||
this._source = result.code;
|
|
||||||
this._sourceMap = result.map;
|
|
||||||
|
|
||||||
Activity.endEvent(wpoActivity);
|
|
||||||
|
|
||||||
return this._source;
|
return this._source;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -187,13 +169,29 @@ class Bundle {
|
||||||
return this._minifiedSourceAndMap;
|
return this._minifiedSourceAndMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
const source = this._getSource(dev);
|
let source = this._getSource(dev);
|
||||||
|
let map = this.getSourceMap();
|
||||||
|
|
||||||
|
if (!dev) {
|
||||||
|
const wpoActivity = Activity.startEvent('Whole Program Optimisations');
|
||||||
|
const wpoResult = require('babel-core').transform(source, {
|
||||||
|
retainLines: true,
|
||||||
|
compact: true,
|
||||||
|
plugins: require('../transforms/whole-program-optimisations'),
|
||||||
|
inputSourceMap: map,
|
||||||
|
});
|
||||||
|
Activity.endEvent(wpoActivity);
|
||||||
|
|
||||||
|
source = wpoResult.code;
|
||||||
|
map = wpoResult.map;
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const minifyActivity = Activity.startEvent('minify');
|
const minifyActivity = Activity.startEvent('minify');
|
||||||
this._minifiedSourceAndMap = UglifyJS.minify(source, {
|
this._minifiedSourceAndMap = UglifyJS.minify(source, {
|
||||||
fromString: true,
|
fromString: true,
|
||||||
outSourceMap: this._sourceMapUrl,
|
outSourceMap: this._sourceMapUrl,
|
||||||
inSourceMap: this.getSourceMap(),
|
inSourceMap: map,
|
||||||
output: {ascii_only: true},
|
output: {ascii_only: true},
|
||||||
});
|
});
|
||||||
Activity.endEvent(minifyActivity);
|
Activity.endEvent(minifyActivity);
|
||||||
|
|
Loading…
Reference in New Issue