You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Feb 14, 2023. It is now read-only.
Repository navigation
This repository was archived by the owner on Feb 14, 2023. It is now read-only.
Dependency Use force update 1.0.10 causes a Type Error #227
It seems that the dependency 'use-force-update 1.0.10' throws a Type error when using the useGlobal hook: Uncaught TypeError: use_force_update_1.default is not a function
Rolling back to use-force-update v1.0.8 fixes the issue.
I'm able to reproduce this. The use-force-update import is being returned by Webpack as a string (/path/to/some-file.cjs) instead of returning the actual module.
Eject from react-scripts and update your Webpack config like this.
Use the commit in the pull request for your copy of react-scripts.
The easiest solution is likely to downgrade react-scripts. If you want the newest toys (who doesn't?), then locking use-force-update at 1.0.8 should work. It may be hard to patch your lock file manually, so depending on your package manager you can check out alternatives.
The third best solution is probably CRACO, because it's easy to just delete the CRACO config file if you decide you don't want it anymore. It's also nice to just have that freedom to configure Webpack regardless.
I hope one of these work for you. I could "fix" it in the package itself, but that would require removing native ESM support, and I'm reluctant to think that to be the right choice. 😞
Reacted by Ryan Jentzsch, Hazem Taha and Mitch Downey
I was upgrading react-scripts from ^4 to ^5 and use-force-update is the only library that broke the build. So I guess this library might be using something non-standard. I found this exports interesting but it could be the reason of breaking changes (from ^1.0.8).
The reason is the cjs file extension, which is standard in newer versions of Node for packages that contain both CJS and ESM code. Others are experiencing it for other dependencies in the CRA bug report linked above.
It's true that not many dependencies use the CJS file extension. Not many dependencies vend both CJS and ESM builds.
Activity
quisido commentedon Aug 11, 2022
I'll look into this. Can you confirm if you are using React Native or is this a browser project?
jessesward commentedon Aug 12, 2022
This is a browser project. Using React v18.2.0
ngobach commentedon Aug 12, 2022
It is reproducible with
react-scripts@^5.quisido commentedon Aug 12, 2022
I'm able to reproduce this. The
use-force-updateimport is being returned by Webpack as a string (/path/to/some-file.cjs) instead of returning the actual module.There is a bug report for this at facebook/create-react-app#11889 and a pull request to fix it at #12352.
Here are some solutions:
react-scriptsto^4until they resolve it in^5.use-force-updateto1.0.8.react-scriptsand update your Webpack config like this.react-scripts.The easiest solution is likely to downgrade
react-scripts. If you want the newest toys (who doesn't?), then lockinguse-force-updateat1.0.8should work. It may be hard to patch your lock file manually, so depending on your package manager you can check out alternatives.For NPM v8+:
For Yarn1:
For Yarn2:
The third best solution is probably CRACO, because it's easy to just delete the CRACO config file if you decide you don't want it anymore. It's also nice to just have that freedom to configure Webpack regardless.
I hope one of these work for you. I could "fix" it in the package itself, but that would require removing native ESM support, and I'm reluctant to think that to be the right choice. 😞
jessesward commentedon Aug 13, 2022
Thanks for looking into it!
For now I think I'll just lock
use-force-updateto1.0.8. Seems to be the best option. Hopefully the webpack issue will get worked out soon.ngobach commentedon Aug 13, 2022
I was upgrading
react-scriptsfrom^4to^5anduse-force-updateis the only library that broke the build. So I guess this library might be using something non-standard. I found this exports interesting but it could be the reason of breaking changes (from^1.0.8).quisido commentedon Aug 13, 2022
The reason is the cjs file extension, which is standard in newer versions of Node for packages that contain both CJS and ESM code. Others are experiencing it for other dependencies in the CRA bug report linked above.
It's true that not many dependencies use the CJS file extension. Not many dependencies vend both CJS and ESM builds.
🐛 bug Downgrade `react-scripts` to ^4.0.3
Fix module error with reactn and use-force-update by setting resoluti…