vite
vite copied to clipboard
Use the modern SASS compiler API
Clear and concise description of the problem
sass-loader v12.5 added an option to switch to sass.compileAsync
instead of the old sass.render
, allowing for use of the new Importer interface which supports @use
https://github.com/webpack-contrib/sass-loader#api
Suggested solution
Either switch to compileAsync
(breaking change though) or add a similar option as the webpack plugin for people who need the new API.
Alternative
No response
Additional context
Related: #3180
Validations
- [X] Follow our Code of Conduct
- [X] Read the Contributing Guidelines.
- [X] Read the docs.
- [X] Check that there isn't already an issue that request the same feature to avoid creating a duplicate.
I think we would be using sass.compileString instead since sass.compile
reads from the filesystem. I looked into the types, and it looks like the options for compileString
extends from render
, so maybe it's not a breaking change if we alternate between compileString
and render
depending on which API is available.
Related: https://github.com/vitejs/vite/issues/6734.
FYI, I made a simple attempt to support SASS modern API #7170
Hi! What is the status on this issue?
@ygj @KaelWD @bluwy @sapphi-red You might already have seen this, but https://github.com/sass/sass/issues/3247 was recently resolved and it seems like the speed improvements could be significant. Just as a friendly FYI 😄
@sapphi-red
Wanted to ref a non-breaking change for this ( #14689 ).
If we allow both legacy and modern modes with a super-simple flag in the config, then it should be a point fix which would be great to get earlier, since it is both a performance and a functionality issue.
Definitely, I forgot why I put the label.
If I understand correctly, the blockers on upstream are all gone and just needs someone to implement it.
If I understand correctly, the blockers on upstream are all gone and just needs someone to implement it.
Yes, and in some cases, this should be a fix instead of improvements, because the current api is already deprecated, and some new features could not be configured.
For example, https://github.com/sass/dart-sass/issues/2276#issuecomment-2226843129