-
Notifications
You must be signed in to change notification settings - Fork 185
Description
Describe your motivation
We use SASS (.scss
) stylesheets under /frontend/styles
. These are imported and fully supported by Vite. It seems that the vaadin:stats
Vite plugin does not generate hashes for them and store in stats.json#frontendHashes
. Because of this, even with prod.bundle
, the Vaadin Maven/Gradle plugins think there are new files, and thus, do not use the existing bundle.
Describe the solution you'd like
const projectFileExtensions = ['.js', '.js.map', '.ts', '.ts.map', '.tsx', '.tsx.map', '.css', '.css.map'];
needs to also support .scss
and .sass
.
Is there a reason those file extensions are not already included? If not, happy to contribute this simple PR.
Describe alternatives you've considered
I could write a Vite plugin that computes and adds the hashes.
I could create a Gradle task that compiles the SASS files and outputs them to /frontend/styles
.
Both options seem messy.
Additional context
I discovered this while investigating ways to speed up our builds, in lieu of Vaadin's proper Gradle caching support. #17941
This idea came from our recent endeavour to speed up builds. Relevant issues:
- The
vaadinPrepareFrontendTask
gradle task is not cached #17941 - Add support for build caching of in-place processed files gradle/gradle#27696
- Include
.scss
and.sass
instats.json
hashes #19527 - Filter classpath scanning for
FrontendDependencies
#19528 - Document the Gradle plugin's
filterClasspath
property/closure docs#3477 - Consider switching from Reflections to a maintained library #19543