Change ESM builds for R3F extension so the components are treeshakeable 🌲 #99
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What?
Right now when
esbuild
ing the R3F extension everything is bundled into a single file for both ESM and CJS builds (includingimport
statements to@theatre/studio
which are only required by some of the components). This PR moves to building an ESM version without bundling all components to a single file, that way separate components can be imported by the user without fear thatstudio
would be included in your bundle when not needed (e.g when importing justeditable
withoutstudio
in the project).Before
Here is a snapshot of the current build output (
esm
target builds a singleindex.mjs
file with everything inlined)After
Each component is built into JS but kept separated by turning `esbuild`'s `bundle` prop off - that way components can be imported individually without having to import the whole `index.mjs` dependencies.
Closes #97