CargoSense / dart_sass

Install and run Dart Sass using Elixir.
https://hex.pm/packages/dart_sass
MIT License
104 stars 23 forks source link

Fails when installing dart_sass on M1 / Apple Silicon / arm64 Macs #7

Closed johnknott closed 3 years ago

johnknott commented 3 years ago

M1 Mac - ** (RuntimeError) could not download dart_sass for architecture: aarch64-apple-darwin20.5.0

It looks like the prebuilt arm64 binaries won't exist until they can be be built on Github Actions - which they can't currently, apparently:

https://github.com/sass/dart-sass/issues/1125#issuecomment-918635002

What's involved in manually getting this working (natively) on M1 Macs as a stopgap?

I have Erlang (installed through asdf) , Dart and Sass installed through brew running natively (arm64 - not through Rosetta).

Can I manually copy or symlink the dart and sass binaries into the _build directory?

johnknott commented 3 years ago

Works well enough through Rosetta when I manually copy in the Intel binaries, and will fix itself when Dart start shipping arm64 binaries in the future. So I'll close the issue!

mcrumm commented 3 years ago

Hi @johnknott, thanks for the issue! We will certainly support the arm64 versions once they're available as releases :)

josecfreittas commented 3 years ago

Hi, @mcrumm. Digging here, it seems that the Sass team is waiting GitHub Actions support for an Apple ARM64 builder, and here we can see that looks like there are no plans yet to GitHub Actions to support it...

Considering this, and considering that Dart Sass works without problems on the M1 via Rosetta, don't you think a viable solution could be to add a config that allows to override the platform that the binary will be downloaded?

Something like this

config :dart_sass,
  version: "1.39.0",
  binary_download_target: "macos-x64",
  default: [
    args: ~w(css/app.scss ../priv/static/assets/app.css),
    cd: Path.expand("../assets", __DIR__)
  ]
clone1018 commented 3 years ago

Works well enough through Rosetta when I manually copy in the Intel binaries, and will fix itself when Dart start shipping arm64 binaries in the future. So I'll close the issue!

Hey John, can you elaborate on how you did this? Do you have to run the entire project via Rosetta, or are you saying that you manually download the libs / executables and copy them somewhere?

mcrumm commented 3 years ago

Closed with 75ab0f0