[Bug]: Cannot find module 'node_modules/react/jsx-runtime
Would you like to work on a fix?
- [ ] Check this if you would like to implement a PR, we are more than happy to help you go through the process.
Current and expected behavior
While testing the v5.3.1 update I started getting test failures I was not getting in v5.3.0 with vite & vitest. Downgraded just to confirm and reapplied the update and get the following error:
Error: Cannot find module 'node_modules/react/jsx-runtime' imported from node_modules/react-chartjs-2/dist/index.js
Did you mean to import "react/jsx-runtime.js"?
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { code: 'ERR_MODULE_NOT_FOUND', url: 'file:///node_modules/react/jsx-runtime' }
Reproduction
Trying to use a Bar chart in a component in a test
chart.js version
v4.5.1
react-chartjs-2 version
v5.3.1
Possible solution
It seems like https://github.com/reactchartjs/react-chartjs-2/pull/1309 is the underlying change
same issue, this change broke our deployment pipeline, React 17 with v5.3.1.
@MatthewCallis @mightyvoid Hi. Could you please provide repo with reproduction? Cause all sandboxes are working without issue like that
@dangreen I'll try and get a repro, but I see in the sandboxes there is no matrix testing of React versions, everything is at v19 in the sandbox. Due to other dependencies I am stuck at v17, but would not have expected a semver breaking change on a point update.
@MatthewCallis React 17 + react-charjs-2 5.3.1 - no any issue
Your issue look like bundler misconfiguration.
react@17 have 'jsx-runtime' file: https://app.unpkg.com/[email protected]/files/jsx-runtime.js
react@17 package.json don't have 'exports' field: https://app.unpkg.com/[email protected]/files/package.json
Thus bundler should resolve 'react/jsx-runtime' to 'node_modules/react/jsx-runtime.js' (like nodejs do, you can test it)
I had the same issue, resolved it using this config suggestion: https://github.com/xyflow/xyflow/issues/4683#issuecomment-2388049017
(We're using craco which is how I was able to modify the webpack config)