exoego/esbuild-bundle-analyzer

Analyzes each PR's impact on esbuild bundle size

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Jul 2, 2026
License
MIT

Pinned Snippet

workflow.ymlSHA-pinned
uses: exoego/esbuild-bundle-analyzer@41475215456b74c9c1c92a93cc901e615233e5d3 # v1.5.6

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
nameThe name of your project. This will be used in the comment header. no${{ github.event.repository.name }}
metafilesA comma-separated list of paths to [esbuild's meta file]([https://esbuild.github.io/api/#metafile]). Must be non-empty. Glob (`dist/**/meta.json`) is supported. As of esbuild v0.20.0, you need to write the meta file by yourself after build, something like this: ```javascript import * as esbuild from 'esbuild' import fs from 'node:fs' let result = await esbuild.build({ entryPoints: ['src/app1.js', 'src/app2.js'], bundle: true, metafile: true, outdir: 'dist', }) fs.writeFileSync('dist/meta.json', JSON.stringify(result.metafile)) ``` In this case, the `metafiles` config should be `"dist/meta.json"`. Typically, you only need one meta file since one meta file can contain multiple out files information. Multiple meta files may be useful for more complex scenarios. yes
analyze_directoryA path to working directory where bundle analysis are stored. no.analyzer
include_extensionsA comma-separated list of file extension to be included in the analysis table. no.js,.cjs,.mjs
percent_extra_attentionIf an out file size has increased more than this percent, display a "‼️" to draw attention to the change. no20
include_size_comparisonA comma-separated list of size comparison items to be displayed. Available filter are `total`, `added`, `deleted`, `increased`, `decreased` and `no-change`. If you are not interested in some of them, you can remove them from the list. noadded, deleted, increased, decreased, no-change
show_detailsIf `true`, a collapsed "details" section is rendered. It explains the details of the numbers provided and icons. notrue
show_no_changeIf `true`, all bundles are shown in the analysis regardless of size change. If `false`, only bundles with size changes are shown. no
top_n_largest_pathsThe number of largest paths (e.g.) `node_modules/foo`) to be collected. If 0 or lower, skipped. no20

no outputs