feat(performance): removed logic out of stats and into plugin for assets over size limit

This commit is contained in:
Sean Larkin 2016-11-23 18:19:30 -06:00 committed by Tobias Koppers
parent 00f9478ea1
commit 0833c59f46
2 changed files with 5 additions and 10 deletions

View File

@ -170,7 +170,8 @@ Stats.prototype.toJson = function toJson(options, forToString) {
size: compilation.assets[asset].size(),
chunks: [],
chunkNames: [],
emitted: compilation.assets[asset].emitted
emitted: compilation.assets[asset].emitted,
isOverSizeLimit: compilation.assets[asset].isOverSizeLimit
};
assetsByFile[asset] = obj;
return obj;
@ -450,16 +451,9 @@ Stats.jsonToString = function jsonToString(obj, useColors) {
.toPrecision(3) + " " + abbreviations[index];
}
function isHugeBundle(assetSize) {
var sizeLimit = obj.performance.maxAssetSize;
return sizeLimit < assetSize;
}
function getAssetColor(asset, defaultColor) {
var jsRegex = /\.js($|\?)/i;
if("performance" in obj) {
if(isHugeBundle(asset.size) && jsRegex.test(asset.name)) {
if(asset.isOverSizeLimit) {
return colors.yellow;
}
}

View File

@ -50,7 +50,7 @@ EmittedAssetSizeLimitPlugin.prototype.apply = function(compiler) {
var hints = this.hints;
var shouldErrorOnHint = this.errorOnHint;
compiler.plugin("after-emit", function(compilation, callback) {
compiler.plugin("emit", function(compilation, callback) {
var warnings = [];
var assetsByFile = {};
var assetsByChunkName = {};
@ -69,6 +69,7 @@ EmittedAssetSizeLimitPlugin.prototype.apply = function(compiler) {
if(doesExceedLimit(sizeLimit, obj.size)) {
obj.isOverSizeLimit = true;
assetsOverSizeLimit.push(obj);
compilation.assets[asset].isOverSizeLimit = true;
}
assetsByFile[asset] = obj;