エラー内容
Warning: Failed to detect linux-musl, fallback to linux-gnu: failed to read fd 10
背景
-
StackBlitzブラウザ環境でVite x Reactを利用していた -
sassを利用したかったので、npm install -g sassコマンドを利用してインストール -
npm run devで起動するとエラーが発生
StackBlitzってなんやねん
Webブラウザ上で直接動作するオンラインコードエディタ
解決方法
-
npm install -g sassを利用するのではなく、npm install sassを利用して解決
この記事に助けられました、本当にありがとうございます🙇
原因
なぜエラーが起きたか
-
npm install -g sassでインストールされるnode-sassは、C++製のLibSassを利用するためネイティブバイナリに依存している -
StackBlitzはブラウザ上で動く環境なので、ネイティブバイナリを実行できない
-
一方、
npm install sassでインストールされるDart Sassは純粋なJavaScript実装なので、ブラウザ環境でも動作する
ネイティブバイナリとは
特定のOS・CPU向けにコンパイルされた実行ファイルのこと。OSやCPUが変わると動作しない。
結論
StackBlitzのようなブラウザベースの環境では、ネイティブバイナリに依存しないsass(Dart Sass)を使おう。
感想
- 正直、ネイティブバイナリの説明は全く足りていない感じがあるので、別の記事でまとめたい
- 使用しているOSが…という話はかなり深くまで掘れるので落とし所むずそう
参考