"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)\"",
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: [
'Transition',
'KeepAlive',
'Suspense'
- ]
- }
+ ],
+ from: vue
+ },
+ { name: 'vapor', imports: '*', from: vapor }
]
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: [