Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Add ES-browser build #3143

Merged
merged 7 commits into from
Sep 25, 2018
Merged

Conversation

TimvdLippe
Copy link
Contributor

@TimvdLippe TimvdLippe commented Sep 20, 2018

This build is intended for users who want to use Redux in a browser with ES modules support. The build removes all references to process by assuming it is in a production environment.

Additionally, it does not transpile, as all browsers that have ES modules support also support ES2015+

This approach is similar to the one of Vue (vuejs/vue#7110) which I have also been using with success.

Fixes #2907

This build is intended for users who want to use Redux
in a browser with ES modules support. The build removes
all references to `process` by assuming it is in a
production environment.

Additionally, it does not transpile, as all browsers
that have ES modules support also support ES2015+
@timdorr
Copy link
Member

timdorr commented Sep 25, 2018

Hey Tim, it's Tim 😄

I'm wondering if we can keep this in the es path, but output redux.browser.js or something like that.

What happens with symbol-observable in this bundle?

@TimvdLippe
Copy link
Contributor Author

Hey! Yes that should be possible. Let me take a look on how to configure rollup for that.

Because ES modules are scoped, symbol-observable is bundled in. While this is a very small performance penalty (in the scenario that you would use symbol-observable somewhere as well), the package is so small I doubt it is relevant.

@TimvdLippe
Copy link
Contributor Author

@timdorr Updated, PTAL 😄

@timdorr
Copy link
Member

timdorr commented Sep 25, 2018

I'm actually mucking about with the babel and rollup configs right now. I'll have a conflict ready for you in just a second...

@TimvdLippe
Copy link
Contributor Author

@timdorr Conflict should be busted 🎉

@TimvdLippe
Copy link
Contributor Author

Hm, let me actually minify just like the minified umd build.

@timdorr
Copy link
Member

timdorr commented Sep 25, 2018

Cool. I renamed it to just redux.mjs for simplicity. Forgot about that extension.

@timdorr timdorr merged commit d7c5816 into reduxjs:master Sep 25, 2018
@TimvdLippe TimvdLippe deleted the add-es-browser-build branch September 25, 2018 18:55
@TimvdLippe
Copy link
Contributor Author

Thanks for the quick review @timdorr ! Can't wait for the next release 🎉

@TimvdLippe
Copy link
Contributor Author

@timdorr What is the ETA of a release of a new version of Redux which includes this PR?

@Andarist
Copy link
Contributor

According to ES modules support taken from here - https://github.com/babel/babel/blob/6b8261bbb7ebb8d2980cb30c3b3369678fd99835/packages/babel-preset-env/data/built-in-modules.json#L1-L11 and testing only desktop browsers quickly it seems that used object rest spread syntax in the es/redux.mjs is not supported in those verstions of Edge & Safari.

Depending on what the audience of this bundle is it might need to get adjusted.

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

Successfully merging this pull request may close these issues.

3 participants