Node Sass は現在の環境のバインディングを見つけられませんでした
-
Node Sass could not find binding for your current environmentとは -
Node Sass could not find a binding for your current environmentの原因 -
Node Sass could not find binding for your current environmentの解決策
このレッスンでは、Node Sass could not find a binding for your current environment問題の解決策を学びます。 しかし、始める前に、問題の性質を特定する必要があります。
Node Sass could not find binding for your current environment とは
nvm のような node バージョン マネージャーを使用すると、時々 npm モジュール パスの一部に問題が発生し、現在使用されているバージョンとは異なるバージョンを使用しようとすることがあります。
Node Sass could not find a binding for your current environment の原因
エラーの考えられる理由の例を次に示します。
-
これは、単一のコンピューターに 1つではなく 2つの異なるバージョンの
Nodeがインストールされている可能性があるためです。グローバル バージョンとプロジェクト固有のバージョンです。 Node.js4.xバージョンを使用しているときに Gulp ビルドが実行されている場合、Sass ファイルは適切にコンパイルされます。C:Program Files (x86)\nodejsに移動し、VS のデフォルト インストールに加えてnode.jsのバージョンがあるかどうかを確認します。Node.jsの 2つの異なるバージョンがインストールされている場合があります。 -
この問題は、
node-sassが現在使用されているオペレーティング システムに適切なバインディングを持っていない場合に発生します。 この問題は、Dockerを使用し、ノード モジュールを直接Dockerfileのコンテナ ファイルシステムに追加するか、Docker ボリュームを使用してマウントする場合によく発生します。これらの方法は両方とも、前の文で説明されています。 コンテナのアーキテクチャは、既存のオペレーティング システムのアーキテクチャとは異なる可能性があります。
たとえば、
node-sassはmacOSにインストールされていますが、マシン コンテナーのオペレーティング システムはUbuntuです。 -
node-sassNode モジュールが使用する Node のバージョンは、それが使用するdarwinバイナリ ファイルによって決まります。 この問題は、バイナリ ファイルがダウンロードされていないか、正しくないバイナリ ファイルがダウンロードされているために発生します。 -
コンピューターから
/.npmおよび/.node-gypフォルダーを削除していない場合、この問題が発生する可能性があります。 これは、/.node-gypフォルダー内に含まれるノードのバージョンが、コンピューターの他の場所にインストールされているノードのバージョンと異なる場合があるためです。 -
他の例では、
Task RunnerExplorer がこの問題を引き起こした責任があります。これは、プロジェクトの問題を解決することを目的としているためです。 ドロップダウン リストを使用してプロジェクトに移動すると、Task Runnerエクスプローラーの横にあるrefreshというラベルの付いたボタンに該当するタスクが表示されます。
Node Sass could not find binding for your current environment の解決策
以下は、指定されたエラーに対して考えられる解決策です。
MacOS の場合
-
CMD+SHIFT+G
-
/usr/local/lib/node-sass -
右クリックして名前を変更します (まだ同じ
node-sassである必要があります)。 -
次に、コマンド
npm install node-sass -gを実行します。
Microsoft Visual Studio 用
-
ビジュアル スタジオ 2015:
次の手順に従ってください:
ツール>オプション>プロジェクトとソリューション>外部 Web ツール -
Visual Studio 2017、2019、および 2022
-
ツール>オプション>プロジェクトとソリューション>Web パッケージ管理>外部 Web ツール -
パス
$(DevEnvDir)\Extensions\Microsoft\Web Tools\Externalを並べ替えます。 -
node modulesという名前のフォルダーを削除し、npm rebuild node-sassを実行します。
Windows用
Node モジュールを再インストールした後、予想される
node-sassのバイナリがダウンロードされます。 一部のユーザーについては、Node バージョンがnode-sassバージョンと互換性があることを確認する必要があります。rmdir node_modules npm cache clean --force npm i npm rebuild node-sass --forceドッカー用
-
.dockerignoreを追加し、その中にnode_modulesを追加します。 -
docker環境のバインドは、ローカル コンピューターの環境のバインドではなく、npm install中にインストールされます。
2バージョンインストール時
-
ツール>オプション>プロジェクト & ソリューション>Web パッケージ管理>外部 Web ツールに移動します。 -
新しいエントリを追加するには、ボタン ブロックの右上隅にあるボタンを使用します。
-
C:\Program Files (x86)\nodejsと入力し、Enter を押して検証します。 -
優先順位リストの一番上に置きます。
バインディングが見つからない場合
これを解決する方法は次のとおりです。
-
不足しているバインディング ファイルをダウンロードします。
-
ファイル
binding.nodeの名前を変更します。 -
node_modules/node-sass/vendor/darwin-x64-11(エラー メッセージからのパス) ディレクトリが存在しない場合は作成します。 -
バインディング ファイルを
node_modules/node-sass/vendor/darwin-x64-11に追加します。
チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe -
I am Waqar having 5+ years of software engineering experience. I have been in the industry as a javascript web and mobile developer for 3 years working with multiple frameworks such as nodejs, react js, react native, Ionic, and angular js. After which I Switched to flutter mobile development. I have 2 years of experience building android and ios apps with flutter. For the backend, I have experience with rest APIs, Aws, and firebase. I have also written articles related to problem-solving and best practices in C, C++, Javascript, C#, and power shell.
LinkedIn