Files
vue-cli/packages/@vue/cli-ui/ui-defaults/utils/stats.js
2019-04-11 00:36:54 +02:00

50 lines
1.2 KiB
JavaScript

const ModulesUtils = require('./modules')
const sizeTypes = ['stats', 'parsed', 'gzip']
exports.processStats = function (stats) {
const rawModules = ModulesUtils.filterModules(stats.data.modules)
const modulesPerSizeType = {}
const analyzer = {}
for (const sizeType of sizeTypes) {
const modules = ModulesUtils.buildSortedModules(rawModules, sizeType)
const modulesTotalSize = modules.reduce((total, module) => total + module.size, 0)
const depModules = ModulesUtils.buildDepModules(modules)
const depModulesTotalSize = depModules.reduce((total, module) => total + module.size, 0)
modulesPerSizeType[sizeType] = {
modulesTotalSize,
depModules,
depModulesTotalSize
}
const modulesTrees = ModulesUtils.buildModulesTrees(rawModules, sizeType)
analyzer[sizeType] = {
modulesTrees
}
}
stats = {
data: {
errors: stats.data.errors,
warnings: stats.data.warnings,
assets: stats.data.assets.map(a => ({
name: a.name,
size: a.size
})),
chunks: stats.data.chunks.map(c => ({
id: c.id,
names: c.names
}))
},
computed: {
modulesPerSizeType
}
}
return {
stats,
analyzer
}
}