Skip to content
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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

jspizziri
Copy link
Collaborator

…on the imported shaka module

#2292

@jspizziri jspizziri requested a review from dcvz as a code owner April 19, 2024 18:20
@jspizziri
Copy link
Collaborator Author

@Bram-dc , can you take a look at this PR and see if it solves your issue?

@jspizziri
Copy link
Collaborator Author

@Bram-dc , did you get a chance to test this?

@andordavoti
Copy link

I'm on vacation for three weeks, but I'll test it with Expo as soon as I get back:)

@Bram-dc
Copy link
Contributor

Bram-dc commented Apr 29, 2024

No I have not, I can do tomorrow.

@Bram-dc
Copy link
Contributor

Bram-dc commented Apr 30, 2024

No, it does not unfortunately solve the issue. Maybe I should open a PR at shaka player to also create an esm build.

@jspizziri
Copy link
Collaborator Author

@Bram-dc it works in the demo app that you shared with me. Did you test it there (that's where I confirmed it)?

@Bram-dc
Copy link
Contributor

Bram-dc commented Apr 30, 2024

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.

    optimizeDeps: {
        include: ['shaka-player/dist/shaka-player.ui'],
    },

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.

@jspizziri
Copy link
Collaborator Author

jspizziri commented Apr 30, 2024

@Bram-dc it works for me on the first run from scratch (rm -rf node_modules/.vite). Are you sure you're testing it correctly? Please document the steps you're taking to try and run this patch.

@Bram-dc
Copy link
Contributor

Bram-dc commented Apr 30, 2024

You can test it when the package is not cached using this:

    optimizeDeps: {
        exclude: ['shaka-player/dist/shaka-player.ui'],
    },

@Bram-dc
Copy link
Contributor

Bram-dc commented Apr 30, 2024

It probably saved an earlier "optimized" version, as vite calls it, of the package.

It also does this when running the bundler without any include. It probably does it, but not always.

@Bram-dc
Copy link
Contributor

Bram-dc commented Apr 30, 2024

https://vitejs.dev/guide/dep-pre-bundling

During development, Vite's dev serves all code as native ESM. Therefore, Vite must convert dependencies that are shipped as CommonJS or UMD into ESM first.
When converting CommonJS dependencies, Vite performs smart import analysis so that named imports to CommonJS modules will work as expected

Maybe it is the dynamic import that confuses Vite. I am not really sure, and would have to check a later time.

@jspizziri
Copy link
Collaborator Author

@Bram-dc yea, its still working for me. jspizziri/rntp-web-demo@5b0598d

@andordavoti
Copy link

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?

@jspizziri
Copy link
Collaborator Author

jspizziri commented May 22, 2024

@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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants