exoego/esbuild-bundle-analyzer
Analyzes each PR's impact on esbuild bundle size
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Jul 2, 2026
- License
- MIT
Pinned Snippet
uses: exoego/esbuild-bundle-analyzer@41475215456b74c9c1c92a93cc901e615233e5d3 # v1.5.6tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| name | The name of your project. This will be used in the comment header. | no | ${{ github.event.repository.name }} |
| metafiles | A 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_directory | A path to working directory where bundle analysis are stored. | no | .analyzer |
| include_extensions | A comma-separated list of file extension to be included in the analysis table. | no | .js,.cjs,.mjs |
| percent_extra_attention | If an out file size has increased more than this percent, display a "‼️" to draw attention to the change. | no | 20 |
| include_size_comparison | A 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. | no | added, deleted, increased, decreased, no-change |
| show_details | If `true`, a collapsed "details" section is rendered. It explains the details of the numbers provided and icons. | no | true |
| show_no_change | If `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_paths | The number of largest paths (e.g.) `node_modules/foo`) to be collected. If 0 or lower, skipped. | no | 20 |
Outputs
no outputs