Pmetafile
Bun

property

BuildOutput.metafile

metafile?: BuildMetafile

Metadata about the build including inputs, outputs, and their relationships.

Only present when BuildConfig.metafile is true.

The metafile contains detailed information about:

  • inputs: All source files that were bundled, their byte sizes, imports, and format
  • outputs: All generated output files, their byte sizes, which inputs contributed to each output, imports between chunks, and exports

This can be used for:

  • Bundle size analysis and visualization
  • Detecting unused code or dependencies
  • Understanding the dependency graph
  • Integration with bundle analyzer tools
const result = await Bun.build({
  entrypoints: ['./src/index.ts'],
  outdir: './dist',
  metafile: true,
});

if (result.metafile) {
  // Analyze input files
  for (const [path, input] of Object.entries(result.metafile.inputs)) {
    console.log(`${path}: ${input.bytes} bytes, ${input.imports.length} imports`);
  }

  // Analyze output files
  for (const [path, output] of Object.entries(result.metafile.outputs)) {
    console.log(`${path}: ${output.bytes} bytes`);
    for (const [inputPath, info] of Object.entries(output.inputs)) {
      console.log(`  - ${inputPath}: ${info.bytesInOutput} bytes`);
    }
  }

  // Write to disk for external analysis tools
  await Bun.write('./dist/meta.json', JSON.stringify(result.metafile));
}