Skip to content
This repository was archived by the owner on Dec 5, 2024. It is now read-only.

Commit cff37e7

Browse files
committed
feat(fusuma): improve build output logs
1 parent 20ae3f9 commit cff37e7

File tree

2 files changed

+25
-12
lines changed

2 files changed

+25
-12
lines changed

packages/fusuma/src/tasks/build.js

+5-3
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,12 @@ async function build(config, isConsoleOutput = true) {
4545
spinner.stop();
4646

4747
if (isConsoleOutput) {
48-
outputBuildInfo(stats);
49-
}
48+
const logs = outputBuildInfo(stats);
49+
const last = logs.splice(-1);
5050

51-
info('build', 'Completed!');
51+
console.info(logs.join('\n'));
52+
info('build', last);
53+
}
5254
}
5355

5456
module.exports = build;

packages/fusuma/src/webpack/outputBuildInfo.js

+20-9
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ function outputBuildInfo(res) {
77
let gzFilesNum = 0;
88
let totalSize = 0;
99
let maxStringSize = 0;
10+
let hiddenFilesNum = 0;
11+
const outputStack = [];
1012

1113
const assets = Object.entries(res.compilation.assets).map(([name, asset]) => {
1214
const size = asset.size();
@@ -23,9 +25,7 @@ function outputBuildInfo(res) {
2325
};
2426
});
2527

26-
assets.sort((a, b) => {
27-
return b.size - a.size;
28-
});
28+
assets.sort((a, b) => b.size - a.size);
2929

3030
assets.forEach(({ name, size }) => {
3131
let filename = name;
@@ -35,6 +35,11 @@ function outputBuildInfo(res) {
3535
gzFilesNum++;
3636
}
3737

38+
if (size <= 4000) {
39+
hiddenFilesNum++;
40+
return;
41+
}
42+
3843
if (name.includes('.js')) {
3944
if (assets.some(({ name }) => name === `${filename}.gz`) || name.includes('.LICENSE')) {
4045
filename = chalk.gray(name);
@@ -47,20 +52,26 @@ function outputBuildInfo(res) {
4752
} else {
4853
filename = chalk.blue(name);
4954
}
50-
} else if (name.includes('.html')) {
55+
} else if (name.includes('.ttf')) {
5156
filename = chalk.redBright(name);
5257
} else if (name.includes('.webp')) {
5358
filename = chalk.magenta(name);
5459
}
5560

56-
console.log(`${filename} ${' '.repeat(maxStringSize - name.length)}${fileSize}`);
61+
outputStack.push(`${filename} ${' '.repeat(maxStringSize - name.length)}${fileSize}`);
5762
});
5863

59-
console.log();
60-
console.log(
61-
`Total ${assets.length} files (gzip: ${gzFilesNum}) -`,
62-
chalk.greenBright(prettyBytes(totalSize))
64+
outputStack.push(` + ${hiddenFilesNum} hidden files`);
65+
outputStack.push('');
66+
outputStack.push(
67+
chalk.white(
68+
`Total ${assets.length} files (gzip: ${gzFilesNum} files) - ${chalk.greenBright(
69+
prettyBytes(totalSize)
70+
)}`
71+
)
6372
);
73+
74+
return outputStack;
6475
}
6576

6677
module.exports = outputBuildInfo;

0 commit comments

Comments
 (0)