From 71b36cad4de462d3ca4d95f50b90ee9a09a12a41 Mon Sep 17 00:00:00 2001 From: kazuya kawaguchi Date: Tue, 7 Jan 2025 12:09:54 +0900 Subject: [PATCH] chore: fix rolldown unsolve warning, due to be wrong order --- scripts/build-rolldown.ts | 4 ++-- scripts/utils.ts | 36 +++++++++++++++++++++++++++++++----- 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/scripts/build-rolldown.ts b/scripts/build-rolldown.ts index a80dab41a..96c7ec98a 100644 --- a/scripts/build-rolldown.ts +++ b/scripts/build-rolldown.ts @@ -113,9 +113,9 @@ async function main() { async function buildAll(targets: string[]) { const start = performance.now() - const all = [] let count = 0 for (const target of targets) { + const all = [] const configs = await createConfigsForTarget(target) if (configs) { all.push( @@ -141,8 +141,8 @@ async function main() { }) ) } + await Promise.all(all) } - await Promise.all(all) console.log( `\n${count} files built in ${(performance.now() - start).toFixed(2)}ms.` ) diff --git a/scripts/utils.ts b/scripts/utils.ts index ebc60308c..564bcf324 100644 --- a/scripts/utils.ts +++ b/scripts/utils.ts @@ -9,24 +9,48 @@ export type BundleReport = { brotli: number } +const PKG_TARGET_ORDER = [ + 'shared', + 'message-compiler', + 'devtools-types', + 'core-base', + 'core', + 'vue-i18n-core', + 'petite-vue-i18n', + 'vue-i18n' +] + +function resolveTargets(targets: string[]) { + return targets.sort((a, b) => { + const ia = PKG_TARGET_ORDER.indexOf(a) + const ib = PKG_TARGET_ORDER.indexOf(b) + return ia > ib ? 1 : ia < ib ? -1 : 0 + }) +} + export const targets = async () => { const packages = await fs.readdir('packages') + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const pkgCaches = new Map() const files = await Promise.all( packages.map(async f => { const stat = await fs.stat(`packages/${f}`) if (!stat.isDirectory()) { return '' } - const pkg = await readJson( - resolve(dirname(''), `./packages/${f}/package.json`) - ) + const pkgfile = resolve(dirname(''), `./packages/${f}/package.json`) + let pkg = pkgCaches.get(pkgfile) + if (pkg == null) { + pkg = await readJson(pkgfile) + pkgCaches.set(pkgfile, pkg) + } if (pkg.private || !pkg.buildOptions) { return '' } return f }) ) - return files.filter((_, f) => files[f]) + return resolveTargets(files.filter((_, f) => files[f])) } export const fuzzyMatchTarget = async ( @@ -78,7 +102,9 @@ export async function sizeTargets() { return f }) ) - return files.filter((_, f) => files[f]).filter(f => /size-check/.test(f)) + return resolveTargets( + files.filter((_, f) => files[f]).filter(f => /size-check/.test(f)) + ) } export async function checkSizeDistFiles(target: string) {