-
-
Notifications
You must be signed in to change notification settings - Fork 1k
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
fix(web): fix issues with certain bundlers only containing default
…
#2299
base: main
Are you sure you want to change the base?
Conversation
@Bram-dc , can you take a look at this PR and see if it solves your issue? |
@Bram-dc , did you get a chance to test this? |
I'm on vacation for three weeks, but I'll test it with Expo as soon as I get back:) |
No I have not, I can do tomorrow. |
No, it does not unfortunately solve the issue. Maybe I should open a PR at shaka player to also create an esm build. |
@Bram-dc it works in the demo app that you shared with me. Did you test it there (that's where I confirmed it)? |
Make sure to disable the caching of the vite bundler when testing. It probably saved an earlier "optimized" version, as vite calls it, of the package. "optimized" meaning it created a transformed version. Sometimes it does do it, sometimes not, but when it does not transform the shaka-player package errors occur. Adding the following to the Vite config, forces Vite to always transform the package with ESbuild.
Works fine with the current way we do it now, so I suggest we close this PR for now, and people that use this specific project structure can do it this way. |
@Bram-dc it works for me on the first run from scratch ( |
You can test it when the package is not cached using this:
|
It also does this when running the bundler without any include. It probably does it, but not always. |
https://vitejs.dev/guide/dep-pre-bundling
Maybe it is the dynamic import that confuses Vite. I am not really sure, and would have to check a later time. |
@Bram-dc yea, its still working for me. jspizziri/rntp-web-demo@5b0598d |
didn't seem to fix the issue for me neither, could we use require instead of the dynamic import here for now to avoid this issue? |
@andordavoti no, as I've already mentioned, that would break other things. Also, have you tested and confirmed that a static require fixes the expo issue? Despite what @Bram-dc reported this fix does actually solve the issue for vite. So really the only remaining one would appear to be expo. Edit: if you could send me an example expo repo where this isn't working that would be helpful. |
Sorry for the late response @jspizziri. I've not tested with a static require, it's just an assumption, should've tested that before suggesting it, sorry about that. I created a repro with a simple expo app. If you launch it on web and look in the console you will get the error "Error: You must call GitHub repro: |
This PR is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 7 days. |
@puckey I think if no one confirms or rejects this PR in the next week we should just merge it. It seems to be working in my testing, and no one has submitted any repro's allowing me to test against their reported issue. |
@jspizziri Have you looked at this repro? |
@andordavoti sorry somehow I missed that one. I'll take a look at it today. |
@andordavoti after investigation, it appears that Expo (circa March 29 of this year) does not support dynamic/async imports (although new versions of the metro bundle do). RNTP Web uses dynamic imports in order to support SSR (e.g. on Next.js). The guidance provided on that ticket is to:
// App.tsx
import '@expo/metro-runtime';
... I think what's needed here is to add some documentation for Expo Web users to alert them of this and add documentation about either importing Edit: I also just checked expo |
Thanks for getting back to me this quick with this. Could you create a PR where this is added to the docs? |
Thanks man, really appreciate all the work you have done on this, this is awesome!! |
0399512
to
54b4dad
Compare
@dcvz I think this is ready to be merged. The failing builds are due to iOS and unrelated. |
…on the imported shaka module
#2292