Node Sass は現在の環境のバインディングを見つけられませんでした

Waqar Aslam 2023年6月20日
  1. Node Sass could not find binding for your current environment とは
  2. Node Sass could not find a binding for your current environment の原因
  3. Node Sass could not find binding for your current environment の解決策
Node Sass は現在の環境のバインディングを見つけられませんでした

このレッスンでは、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. これは、単一のコンピューターに 1つではなく 2つの異なるバージョンの Node がインストールされている可能性があるためです。グローバル バージョンとプロジェクト固有のバージョンです。 Node.js 4.x バージョンを使用しているときに Gulp ビルドが実行されている場合、Sass ファイルは適切にコンパイルされます。

    C:Program Files (x86)\nodejs に移動し、VS のデフォルト インストールに加えて node.js のバージョンがあるかどうかを確認します。 Node.js の 2つの異なるバージョンがインストールされている場合があります。

  2. この問題は、node-sass が現在使用されているオペレーティング システムに適切なバインディングを持っていない場合に発生します。 この問題は、Docker を使用し、ノード モジュール を直接 Dockerfile のコンテナ ファイルシステムに追加するか、Docker ボリューム を使用してマウントする場合によく発生します。

    これらの方法は両方とも、前の文で説明されています。 コンテナのアーキテクチャは、既存のオペレーティング システムのアーキテクチャとは異なる可能性があります。

    たとえば、node-sassmacOS にインストールされていますが、マシン コンテナーのオペレーティング システムは Ubuntu です。

  3. node-sass Node モジュールが使用する Node のバージョンは、それが使用する darwin バイナリ ファイルによって決まります。 この問題は、バイナリ ファイルがダウンロードされていないか、正しくないバイナリ ファイルがダウンロードされているために発生します。

  4. コンピューターから /.npm および /.node-gyp フォルダーを削除していない場合、この問題が発生する可能性があります。 これは、/.node-gyp フォルダー内に含まれるノードのバージョンが、コンピューターの他の場所にインストールされているノードのバージョンと異なる場合があるためです。

  5. 他の例では、Task Runner Explorer がこの問題を引き起こした責任があります。これは、プロジェクトの問題を解決することを目的としているためです。 ドロップダウン リストを使用してプロジェクトに移動すると、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 用

  1. ビジュアル スタジオ 2015:

    次の手順に従ってください: ツール > オプション > プロジェクトとソリューション > 外部 Web ツール

  2. 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 に追加します。
著者: Waqar Aslam
Waqar Aslam avatar Waqar Aslam avatar

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

関連記事 - Node.js Error