Open
Description
There has been a few requests for BSD support on the sass-embedded-host-ruby:
- Cannot create the gem on FreeBSD sass-contrib/sass-embedded-host-ruby#228
- sass-embedded fails to build on FreeBSD14 sass-contrib/sass-embedded-host-ruby#227
- nanoc-dart-sass does not install on FreeBSD 14 nanoc/nanoc#1710
- [Bug]: Impossible to use Jekyll on FreeBSD jekyll/jekyll#9462
- feat: OpenBSD support jekyll/jekyll#9493
The most reasonable solution seems to be implementing sass --embedded
in pure JS mode so that we can run embedded compiler using Node.js runtime on platforms that Dart runtime has no support. Aside from BSD, this will also allow users of some minor CPU architecture to run embedded host.
The pure JS implementation should be very similar to the current Dart implementation:
- Use synchronous compilation only for better performance.
- Use Node.js worker threads to replace Dart isolates.
- Use
SyncMessagePort
from embedded-host-node to replaceMailbox
.