React: Avoid 'Dynamic require of react is not possible' issue #28730
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.
Closes N/A
What I did
It closes an issue when Vitest runs portable stories. The following error occurs:
This issue at
tsup
seems to be related:egoist/tsup#927
Checklist for Contributors
Testing
The changes in this PR are covered in the following automated tests:
Manual testing
Manual testing is not necessary. Automated tests cover it.
Documentation
MIGRATION.MD
Checklist for Maintainers
When this PR is ready for testing, make sure to add
ci:normal
,ci:merged
orci:daily
GH label to it to run a specific set of sandboxes. The particular set of sandboxes can be found incode/lib/cli/src/sandbox-templates.ts
Make sure this PR contains one of the labels below:
Available labels
bug
: Internal changes that fixes incorrect behavior.maintenance
: User-facing maintenance tasks.dependencies
: Upgrading (sometimes downgrading) dependencies.build
: Internal-facing build tooling & test updates. Will not show up in release changelog.cleanup
: Minor cleanup style change. Will not show up in release changelog.documentation
: Documentation only changes. Will not show up in release changelog.feature request
: Introducing a new feature.BREAKING CHANGE
: Changes that break compatibility in some way with current major version.other
: Changes that don't fit in the above categories.🦋 Canary release
This pull request has been released as version
0.0.0-pr-28730-sha-8f30c5c8
. Try it out in a new sandbox by runningnpx [email protected] sandbox
or in an existing project withnpx [email protected] upgrade
.More information
0.0.0-pr-28730-sha-8f30c5c8
valentin/fix-dynamic-require-react-issue-in-vitest
8f30c5c8
1722243649
)To request a new release of this pull request, mention the
@storybookjs/core
team.core team members can create a new canary release here or locally with
gh workflow run --repo storybookjs/storybook canary-release-pr.yml --field pr=28730
Greptile Summary
This pull request addresses the issue of dynamic require errors for React in Vitest by modifying import statements and dynamic imports.
code/lib/react-dom-shim/src/react-16.tsx
to use namespace imports forreact-dom
.code/lib/react-dom-shim/src/react-18.tsx
to use namespace imports for both React and ReactDOM, ensuring compatibility with Vitest.code/renderers/react/src/renderToCanvas.tsx
to dynamically importrenderElement
andunmountElement
from@storybook/react-dom-shim
within therenderToCanvas
function, preventing dynamic require errors.