Skip to content
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

feat(css): tree shake scoped styles #533

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

sapphi-red
Copy link
Member

@sapphi-red sapphi-red commented Feb 25, 2025

Description

Since the scoped styles in Vue generates styles scoped to that component, it can be tree shaken if that component is not used. (normal styles cannot be tree shaken as it can be used from other components).

This PR requires #526 and it uses a recently introduced feature in Vite (vitejs/vite#19418).

I tested this feature with https://vitepress.new/ and I got 8kB CSS file reduction.

Technically you can have a scoped style like below

:global(.foo) {
  color: red;
}

and this would be treeshaken where you might not expect to. If we should handle this case, we can add an additional condition of !code.includes(':global').

Additional context


What is the purpose of this pull request?

  • Bug fix
  • New Feature
  • Documentation update
  • Other

Before submitting the PR, please make sure you do the following

  • Read the Contributing Guidelines.
  • Read the Pull Request Guidelines and follow the PR Title Convention.
  • Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
  • Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
  • Ideally, include relevant tests that fail without this PR but pass with it.

@sapphi-red sapphi-red added the p2-nice-to-have 🍰 Not breaking anything but nice to have (priority) label Feb 25, 2025
Copy link

pkg-pr-new bot commented Feb 25, 2025

Open in Stackblitz

npm i https://pkg.pr.new/@vitejs/plugin-vue@533
npm i https://pkg.pr.new/@vitejs/plugin-vue-jsx@533

commit: e4f981e

@sapphi-red sapphi-red mentioned this pull request Mar 3, 2025
1 task
@sapphi-red sapphi-red force-pushed the feat/pass-meta-vite-scoped-to-to-allow-scoped-styles-to-be-tresshaken branch from 45d9d2f to bb5b18f Compare March 3, 2025 02:01
@sapphi-red sapphi-red marked this pull request as ready for review March 3, 2025 04:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
p2-nice-to-have 🍰 Not breaking anything but nice to have (priority)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant