Use the modern SASS compiler API
KaelWD opened this issue ยท 8 comments
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
- Follow our Code of Conduct
- Read the Contributing Guidelines.
- Read the docs.
- 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: #6734.
Hi! What is the status on this issue?
@ygj @KaelWD @bluwy @sapphi-red You might already have seen this, but sass/sass#3247 was recently resolved and it seems like the speed improvements could be significant. Just as a friendly FYI ๐
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, sass/dart-sass#2276 (comment)