mirror of
https://github.com/vuejs/vue-cli.git
synced 2026-01-26 00:59:02 -06:00
50 lines
1.2 KiB
JavaScript
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
|
|
}
|
|
}
|