React: Fix React 18 react-dom/client dynamic import syntax #17987
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: storybookjs/builder-vite#340
What I did
Currently, the dynamic import of
react-dom/client
does not use the.default
, as it should, since dynamic imports work like namespace imports (e.g.import * as dep from 'library'
). Perhaps webpack has a compat layer when dealing with commonjs files that is making this work as written, but it's more correct in terms of the es module spec to reference the default property from the module, I believe.How to test
This was passing the tests previously in the vite builder because rollup seems to hoist the default property up to the module, which maybe webpack is doing as well? But, it fails in vite dev. With this change, it passes.