getBundle only works once in .11ty.js templates, then fails to replace
I seem to have stumbled into some confusing behavior that I'm seeing when using getBundle and/or getBundleFileUrl specifically within a .11ty.js layout used by multiple templates.
I've created a repo to reproduce the issue: https://github.com/kfranqueiro/11ty-js-getbundle-bug
To better illustrate the issue, the repo begins in a working state. It has 3 templates (one HTML/Liquid, one JS, one Markdown) and 2 layouts (one HTML/Liquid, one JS).
In its initial state, all 3 templates are using the HTML layout, and npm run build produces the expected results: all 3 resulting pages have CSS both inlined and referenced via separate files properly.
Where things get interesting, is when you start switching those templates to use the JS layout...
- When you switch 1 over, everything is still fine
- When you switch 2 over (seemingly regardless of which 2 exactly), 1 out of 2 will be broken, with incorrect output still containing
__EleventyBundlecomments that should have been replaced - When you switch all 3 over, 2 out of 3 will be broken as above
Somehow getBundle and getBundleFileUrl within the .11ty.js layout only ever work for one page?
(For what it's worth, this also happens if only using getBundle; I added getBundleFileUrl to the example later to see if it behaved the same)
- Eleventy: 3.0.0-alpha.10 + eleventy-plugin-bundle 2.0.2
- Node: 20.13.1
- OS: Linux (Debian 12)
I think I'm having the same issue as this and created my own repo for reproduction before stumbling here: https://github.com/troyvassalotti/mvp-eleventy-bundle-debug.
In my case, my site's homepage has a bundle that doesn't get output at all, while other pages have mixed results.