-
-
Notifications
You must be signed in to change notification settings - Fork 794
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TypeError: nanoid is not a function when using react native web and styled components #429
Comments
It looks like a bug in package manager. PostCSS already requires only |
I was actually mentioning about |
I got the reason (sorry, I missed with postcss/postcss#1727 where we had broken lock file)! 3.3.5 was broken. You just need to update to 3.3.6. |
But the issue seems to be caused on 3.3.6 itself and working fine on 3.3.5 if you check the attached repo for reproduction along with the lock file in the same repo. I guess there was some breaking change in the 3.3.6 release as compared to 3.3.5. I noticed that when I was using 3.3.6, I was getting the link to the file instead of the object exposed by it when using: const { nanoid } = require('nanoid/no-secure') I tried finding the diff between the 3.3.5 and 3.3.6 but couldn't find the later tag 🧐 |
Also just to mention again, I had to downgrade to 3.3.5 to make the code work. |
Very strange. The issue of 3.3.5 that it was released without dual CJS+ESM support (only CJS files), which we do on publish state. Maybe you have some issues with building ESM for RN? |
Unfortunatelly, I can’t help you in debug since I have no RN and iOS dev tools. The best way to check content is Code tab |
This maybe possible, I'll check and update here by tomorrow with an update. |
Oh, got it. I'll try to figure out on my own then. Just FYI, the RN repo I shared uses expo internally so you can run the app on web to the least with couple of yarn commands if you want but anyways thanks for providing the details. |
This doesn't seem to work at the moment. I have added
into the package.json file of my root directory, yet I still get this error. It's been almost a week now, and I'm yet to get a fix. I'll be glad if anyone could be of help |
@neeraj500 there is something different wrong in your system. I am removing this suggestion because it is dangerous (you should not use Open another issue, since you have a non-relevant bug. |
Use |
Still happening. |
This seems to be related to postcss/postcss#1727. So I was using react native on the web along with styled-components that use postcss. While everything was working as expected on Android and iOS but each time I tried using the app on the web, I kept on getting the error
nanoid is not a function
at https://github.com/postcss/postcss/blob/main/lib/input.js#L58. Upon debugging, I figured out that the nanoid version3.3.6
was causing the issue due to breaking CJS support probably as mentioned in #422 as well. Upon adding the following resolutions to my package.json file, the error was finally resolved:Here is the link to a sample repository to reproduce the issue: https://github.com/eshankvaish/nanoid-issue and how I fixed the issue: https://github.com/eshankvaish/nanoid-issue/pull/1.
The text was updated successfully, but these errors were encountered: