shellscape / jsx-email

Build emails with a delightful DX
https://jsx.email
MIT License
902 stars 28 forks source link

fix(all,cli,render,tailwind): use rehype, remove cheerio and terser #75

Closed shellscape closed 8 months ago

shellscape commented 8 months ago

Component / Package Name:

This PR contains:

Are tests included?

Breaking Changes?

If yes, please include "BREAKING CHANGES:" in the first commit message body, followed by a description of what is breaking.

List any relevant issue numbers:

Description

While technically the differences in output could constitute a breaking change, nothing in the API layer of the project has changed.

Retesting output from jsx-email is not a recommended practice. Howeer, If you were re-testing output from jsx-email, you'll want to update those tests.

This PR swaps out cheerio and html-minifier-terser for rehype and comparable plugins. cheerio and html-minifier-terser are very good and very fast, and that's why we initially went with them. However, they give Vite a lot of trouble while running the dev server, and so the decision was made to move to something else. Rehype does a fine job, and while the minification output is ever so slightly larger, it's much faster at both manipulating the HTML (which cheerio was doing for us) and minifying.