CLI: Default new vite projects to storyStoreV7 #17859
Merged
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.
Issue:
What I did
The vite builder benefits greatly from the on-demand story store, especially in dev-mode where modules are all sent to the browser unbundled (for better HMR and faster server startup). In large vite storybook apps, this can mean thousands of network requests, which can take some time for the browser to process, causing a longer time-to-interactive. (Note, this isn't a problem in built storybooks, since vite bundles them with rollup to avoid this problem).
Furthermore, the new store is much more reliable and less likely to encounter bugs and subtle differences between the vite and webpack builders. A PR, storybookjs/builder-vite#303, is currently open which would allow the use of the new store while not lazy-loading, in case users prefer or require that approach.
How to test
I'm not sure how the cli is currently tested, other than in e2e tests, which do not use the vite builder (maybe we should add a few?)
But, I did build my changes, create a new vite project, and run the changed cli against it, and verified that
features: {storyStoreV7: true}
was in the generated config.