Skip to content

Include .scss and .sass in stats.json hashes #19527

@oliveryasuna

Description

@oliveryasuna

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:

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions