未验证 提交 f077a39e 编写于 作者: T Tim Neutkens 提交者: GitHub

Divide export build output in 4 segments instead of showing it one by one (#16815)

上级 a9c442f2
......@@ -46,7 +46,22 @@ import { getPagePath } from '../next-server/server/require'
const exists = promisify(existsOrig)
function divideSegments(number: number, segments: number): number[] {
const result = []
while (number > 0 && segments > 0) {
const dividedNumber = Math.floor(number / segments)
number -= dividedNumber
segments--
result.push(dividedNumber)
}
return result
}
const createProgress = (total: number, label = 'Exporting') => {
const segments = divideSegments(total, 4)
let currentSegmentTotal = segments.shift()
let currentSegmentCount = 0
let curProgress = 0
let progressSpinner = createSpinner(`${label} (${curProgress}/${total})`, {
spinner: {
......@@ -73,6 +88,15 @@ const createProgress = (total: number, label = 'Exporting') => {
return () => {
curProgress++
currentSegmentCount++
// Make sure we only log once per fully generated segment
if (currentSegmentCount !== currentSegmentTotal) {
return
}
currentSegmentTotal = segments.shift()
currentSegmentCount = 0
const newText = `${label} (${curProgress}/${total})`
if (progressSpinner) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册