@@ -9,24 +9,48 @@ export type BundleReport = {
9
9
brotli : number
10
10
}
11
11
12
+ const PKG_TARGET_ORDER = [
13
+ 'shared' ,
14
+ 'message-compiler' ,
15
+ 'devtools-types' ,
16
+ 'core-base' ,
17
+ 'core' ,
18
+ 'vue-i18n-core' ,
19
+ 'petite-vue-i18n' ,
20
+ 'vue-i18n'
21
+ ]
22
+
23
+ function resolveTargets ( targets : string [ ] ) {
24
+ return targets . sort ( ( a , b ) => {
25
+ const ia = PKG_TARGET_ORDER . indexOf ( a )
26
+ const ib = PKG_TARGET_ORDER . indexOf ( b )
27
+ return ia > ib ? 1 : ia < ib ? - 1 : 0
28
+ } )
29
+ }
30
+
12
31
export const targets = async ( ) => {
13
32
const packages = await fs . readdir ( 'packages' )
33
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
34
+ const pkgCaches = new Map < string , any > ( )
14
35
const files = await Promise . all (
15
36
packages . map ( async f => {
16
37
const stat = await fs . stat ( `packages/${ f } ` )
17
38
if ( ! stat . isDirectory ( ) ) {
18
39
return ''
19
40
}
20
- const pkg = await readJson (
21
- resolve ( dirname ( '' ) , `./packages/${ f } /package.json` )
22
- )
41
+ const pkgfile = resolve ( dirname ( '' ) , `./packages/${ f } /package.json` )
42
+ let pkg = pkgCaches . get ( pkgfile )
43
+ if ( pkg == null ) {
44
+ pkg = await readJson ( pkgfile )
45
+ pkgCaches . set ( pkgfile , pkg )
46
+ }
23
47
if ( pkg . private || ! pkg . buildOptions ) {
24
48
return ''
25
49
}
26
50
return f
27
51
} )
28
52
)
29
- return files . filter ( ( _ , f ) => files [ f ] )
53
+ return resolveTargets ( files . filter ( ( _ , f ) => files [ f ] ) )
30
54
}
31
55
32
56
export const fuzzyMatchTarget = async (
@@ -78,7 +102,9 @@ export async function sizeTargets() {
78
102
return f
79
103
} )
80
104
)
81
- return files . filter ( ( _ , f ) => files [ f ] ) . filter ( f => / s i z e - c h e c k / . test ( f ) )
105
+ return resolveTargets (
106
+ files . filter ( ( _ , f ) => files [ f ] ) . filter ( f => / s i z e - c h e c k / . test ( f ) )
107
+ )
82
108
}
83
109
84
110
export async function checkSizeDistFiles ( target : string ) {
0 commit comments