mathiasbynens / he

A robust HTML entity encoder/decoder written in JavaScript.
https://mths.be/he
MIT License
3.45k stars 254 forks source link

Let's set up a modern Rollup-based build system #76

Open revelt opened 5 years ago

revelt commented 5 years ago

Related to #64, we should remove all UMD and iife-related code and leave it for Rollup to produce UMD, CJS and EMS builds. Along the way, we could rebase the source to be in ES6+ and keep the source in ES Modules format so that importing parties could benefit from tree-shaking etc. Publishing methods as separate packages (lodash-style) is also an option which would solve #64.

Currently, the iife wrapper in the source contains this and it throws errors in Rollup:

rollup

That's what I'm talking about — if we cleaned the source to be in ES Modules (with import/export) and left up to Rollup to produce the UMD build, we could improve the user experience.

The fork https://www.npmjs.com/package/lean-he already went to the right direction, removing the iife wrapper but it still lacks proper Rollup setup with UMD, CJS and ESM builds.

@mathiasbynens please advise, do you see value in this path or should we forget about setting up the Rollup and close this issue.

mathiasbynens commented 5 years ago

I'd love to see a modern Rollup-based build setup! Would you be willing to submit a PR?

revelt commented 5 years ago

OK, I'll try. @mathiasbynens are you happy to also start using prettier on default settings? Formatting is the first obstacle when collaborating.

mathiasbynens commented 5 years ago

I'd prefer separating the two. Let's keep the Rollup patch as small as possible, and then consider prettier as a separate follow-up patch.

revelt commented 5 years ago

Duly noted.