-
Notifications
You must be signed in to change notification settings - Fork 1
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
refactor: Purge plugin overhaul #27
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
🦋 Changeset detectedLatest commit: e36ecaf The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
This was referenced Apr 9, 2024
This was referenced Apr 11, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Plugin Overhaul -
v0.3.0
This PR introduces a new purging strategy that's more focused, and less prone to errors.
The old...
Prior to version
0.3.0
, we would analyze the module graph and extract out any possible selectors. We would then indiscriminately pass these selectors off to PurgeCSS for final processing. This worked in most cases, but it often became a source of confusion and bugs when selectors were being unintentionally purged. To curb these issues, escape hatches, such as safelisting, were required.What's new?
Today, we'll only be purging excess tailwindcss classes, leaving everything else untouched. Safelisting, and most other PurgeCSS options, will no longer be necessary. This new approach is far more accurate and efficient, leading to even smaller bundle sizes.
Note
In some cases, bundle sizes may be larger in projects that are importing CSS from other sources, such as a CSS based icon library, such as Font Awesome. For these cases, we recommend implementing your own purging strategy (or use component based icon library, such as Lucide, instead of CSS).
Additions
0.3.0
also introduces alegacy
mode, which brings back the old plugin behavior.Breaking Changes
tailwindcss
has been added as a peer-dependency.v3.3.0
or higher is now required.Migration
npm
(or your preferred package manager):And you're all set!
Keeping the old behavior (not recommended)
If you wish to keep the old behavior, see legacy mode.
TODOs
legacy
modecloses #14
closes #17
closes #24