]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
feat: size report for runtime vapor
author三咲智子 Kevin Deng <sxzz@sxzz.moe>
Thu, 16 Nov 2023 19:15:12 +0000 (03:15 +0800)
committer三咲智子 Kevin Deng <sxzz@sxzz.moe>
Thu, 16 Nov 2023 19:15:12 +0000 (03:15 +0800)
package.json
scripts/usage-size.ts

index 8c34405c9266f29b5a1efa2795ae666413256a0e..421313741ac99895feb8967ce4d025e681726152 100644 (file)
@@ -11,7 +11,7 @@
     "size": "run-s \"size-*\" && tsx scripts/usage-size.ts",
     "size-global": "node scripts/build.js vue runtime-dom -f global -p --size",
     "size-esm-runtime": "node scripts/build.js vue -f esm-bundler-runtime",
-    "size-esm": "node scripts/build.js runtime-dom runtime-core reactivity shared -f esm-bundler",
+    "size-esm": "node scripts/build.js runtime-dom runtime-vapor runtime-core reactivity shared -f esm-bundler",
     "check": "tsc --incremental --noEmit",
     "lint": "eslint --cache --ext .ts packages/*/{src,__tests__}/**.ts",
     "format": "prettier --write --cache \"**/*.[tj]s?(x)\"",
index 1a1013b784701b1369f9aaa4b6a5c8f1d5429b7d..7c96136bc58ce57e0ab55cc7181bf877961888eb 100644 (file)
@@ -7,17 +7,23 @@ import replace from '@rollup/plugin-replace'
 import { brotliCompressSync, gzipSync } from 'node:zlib'
 
 const sizeDir = path.resolve('temp/size')
-const entry = path.resolve('./packages/vue/dist/vue.runtime.esm-bundler.js')
+const vue = path.resolve('./packages/vue/dist/vue.runtime.esm-bundler.js')
+const vapor = path.resolve('./packages/vue/vapor/index.mjs')
 
 interface Preset {
   name: string
-  imports: string[]
+  imports: '*' | string[]
+  from: string
 }
 
 const presets: Preset[] = [
-  { name: 'createApp', imports: ['createApp'] },
-  { name: 'createSSRApp', imports: ['createSSRApp'] },
-  { name: 'defineCustomElement', imports: ['defineCustomElement'] },
+  { name: 'createApp', imports: ['createApp'], from: vue },
+  { name: 'createSSRApp', imports: ['createSSRApp'], from: vue },
+  {
+    name: 'defineCustomElement',
+    imports: ['defineCustomElement'],
+    from: vue
+  },
   {
     name: 'overall',
     imports: [
@@ -27,8 +33,10 @@ const presets: Preset[] = [
       'Transition',
       'KeepAlive',
       'Suspense'
-    ]
-  }
+    ],
+    from: vue
+  },
+  { name: 'vapor', imports: '*', from: vapor }
 ]
 
 main()
@@ -53,7 +61,11 @@ async function main() {
 
 async function generateBundle(preset: Preset) {
   const id = 'virtual:entry'
-  const content = `export { ${preset.imports.join(', ')} } from '${entry}'`
+  const exportSpecifiers =
+    preset.imports === '*'
+      ? `* as ${preset.name}`
+      : `{ ${preset.imports.join(', ')} }`
+  const content = `export ${exportSpecifiers} from '${preset.from}'`
   const result = await rollup({
     input: id,
     plugins: [