Skip to content

Ship unminified file as ESM entrypoint #484

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

Closed
wants to merge 1 commit into from

Conversation

jasonkarns
Copy link
Contributor

@jasonkarns jasonkarns commented May 12, 2020

Summary

ESM entrypoints are very very likely to be consumed by bundlers, not loaded directly into browsers. Therefore it is preferable that the bundlers have access to the unminified source so that consumers can have more control over the final output.

This change adds an ESM output bundle that is not minified with terser. (#477 has merged which also adds the unminified ES bundle, so this PR now just makes the unminified bundle the module entrypoint.)
Notably, the unminified bundle is created in addition to the minified bundle;
so the minified bundle is still distributed with the package (at the same output location).

This way users who do actually want the minified bundle may still use it.

However, the package.json#module entrypoint is changed to reference the unminified bundle, as this is most likely what users will want when consuming from a bundler. (And bundlers are virtually the exclusive consumers of the module entrypoint.)

zashraf1985 added a commit that referenced this pull request Apr 11, 2022
## Background

This PR is copied from [484](#484). It was contributed by @jasonkarns a couple of years ago. I just pulled his changes, merged master and resolved conflicts.

## Summary

ESM entrypoints are very very likely to be consumed by bundlers, not loaded directly into browsers. Therefore it is preferable that the bundlers have access to the unminified source so that consumers can have more control over the final output.

~~This change _adds_ an ESM output bundle that is not minified with terser.~~ (#477 has merged which also adds the unminified ES bundle, so this PR now just makes the unminified bundle the `module` entrypoint.)
Notably, the unminified bundle is created _in addition to_ the minified bundle;
so the minified bundle is still distributed with the package (at the same output location).

This way users who do actually want the minified bundle may still use it.

However, the `package.json#module` entrypoint is changed to reference the unminified bundle, as this is most likely what users will want when consuming from a bundler. (And bundlers are virtually the exclusive consumers of the `module` entrypoint.)
@zashraf1985
Copy link
Contributor

Moved the work to #752 . Closing this

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.

2 participants