0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

dartsass-rails が Raspberry Pi 3 で動くようになった

Last updated at Posted at 2023-06-25

dartsass-rails は Dart Sass のバイナリ実行ファイルを提供してくれる gem で、これのおかげで Node.js なしでも Dart Sass が使える

ところがこの gem の v0.4.1 以前ではサポートしているプラットフォームが少なく、 私の持っている Raspberry Pi 3 では動作しなかった。
プラットフォームの判定は このファイル で行われていた。

exe_path =
  case platform_string
  when /aarch64-linux/ then File.join(__dir__, "aarch64-linux/sass")
  when /arm(64)?-darwin/ then File.join(__dir__, "arm64-darwin/sass")
  when /darwin/ then File.join(__dir__, "darwin/sass")
  when /linux/ then File.join(__dir__, "linux/sass")
  when /mswin|mingw|cygwin/ then File.join(__dir__, "mingw32/sass.bat")
  else
    STDERR.puts(<<~ERRMSG)
      ERROR: dartsass-rails does not support the #{platform_string} platform
    ERRMSG
    exit 1
  end

この platform_string が、 Raspberry Pi 3 だと armv7l-linux-eabihf なので、 /linux/ にマッチしていた。このとき使用される linux/sass がどのプラットフォーム用のバイナリだったか覚えていないのだが(64 bit 用だった記憶)、 Raspebrry Pi 3 では動作しなかった。

そのため、自分で テキトーにパッチをあてて 使っていたのだが、先日の v0.5.0 のリリース で sass-embedded という gem を利用するように変更された。

これによって、各プラットフォームに対応した Dart Sass のバイナリ実行ファイルがインストールされるようになった。上記のPRのコメントにある通り、サポートしているプラットフォームの数が多い。

  • arm64-darwin
  • x86_64-darwin
  • aarch64-linux-android
  • arm-linux-androideabi
  • x86-linux-android
  • x86_64-linux-android
  • aarch64-linux-gnu
  • arm-linux-gnueabihf
  • x86-linux-gnu
  • x86_64-linux-gnu
  • aarch64-linux-musl
  • arm-linux-musleabihf
  • x86-linux-musl
  • x86_64-linux-musl
  • x64-mingw-ucrt
  • x64-mingw32
  • x86-mingw32

ラズパイで dartsass-rails をアップデートしたところ、対応する sass-embedded がインストールされた。

Fetching sass-embedded 1.63.6 (arm-linux-gnueabihf)
Installing sass-embedded 1.63.6 (arm-linux-gnueabihf)
Fetching dartsass-rails 0.5.0 (was 0.4.1)
Installing dartsass-rails 0.5.0 (was 0.4.1)

Raspberry Pi 3 で Dart Sass が動いた! :tada:

$ bundle exec dartsass --version
1.63.6
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?