Node Sassは現在の環境のバインディングを見つけることができませんでした


499

node-sassがエラーで失敗し続けるため、アプリの構築に問題があります。

不足しているバインディングのエラー/Users/warren/Sites/random-docs/my-cms/node_modules/node-sass/vendor/darwin-x64-11/binding.node
Node Sassは現在の環境のバインディングを見つけることができませんでした:OS Xノード0.10.xの64ビット

走ってみた

npm rebuild node-sass

それは言う

バイナリで結構です。終了します。

実行するnode -vと、v6.2.2が表示されます

これは、sassエラーが「Node 0.10.x」と言うのとは異なります。なぜバージョンが間違っているのかわかりません。また、node_modulesフォルダーを削除してnpm updateまたはnpm installを実行しようとしましたが、どちらも問題は解決しませんでした。何か案は?


8
などのノードバージョンマネージャを使用していますnvmか?あなたが時々それがnpmモジュールパスのいくつかを台無しにして、彼らは現在のものとは異なるバージョンを使用しようとします。そうでない場合は、常にnode_modulesフォルダを削除して依存関係を再度インストールしてみてください
Vasil Dininski

2
私はnvmを使用していないので、削除/再インストールの手順を試しました。運が悪い。
ワザデー

あなたの開発環境は何ですか?あなたはVS.NET 2105を使用していますか?
マイクアンダーソン、

@VasilDininski nvmを使用していますが、どうすればよいですか?
Subkhan Sarif 2017

1
Visual Studio 2017を開きます。ツール->オプション…プロジェクトとソリューション-> Webパッケージ管理の順に進み、$(PATH)をリストの一番上に移動して、ウィンドウを閉じます。私の場合、私のノードのバージョンが11.xであるため、このソリューションは機能しました
すでに

回答:


721

同じ問題がありました

gulpfileにエラーがあります:
エラー:バインディングがありませんE:\ allapp \ badshaindiancuisine \ node_module \ node-sass \ vendor \ win32-x64-46 \ binding.node
Node Sassは現在の環境のバインディングを見つけることができませんでした:Windows 64 -bitとNode.js 4.x

次の環境のバインディングが見つかりました:
    -Node.js 4.xを備えたOS X 64ビット

問題を解決する方法

プロジェクトフォルダーに移動して実行します。

npm rebuild node-sass

6
最初は動作しましたが、まだ問題がありました。そこで、/usr/local/lib/FinderでCMD + SHIFT + G を使用し、node-sassフォルダの名前を変更しました。その後、走ったnpm install node-sass -g。修正されました。私はMac OSを使用しています
IsmailS

nodejsを8.xxに更新した後、この問題に直面し、これで解決しました。どうもありがとう!感謝!
ChiragMS

2
動作しません。ノード:v10.7.0 ノード-SASS: v3.13.1。私の現在の環境はノード0.10.xの32ビットウィンドウであり、これは単に真実ではないと言います。
Bardicer 2018

これは、ノード10.14 LTSおよびnpm 6.4.1を備えたWindows 7で機能しました。
santon 2018

9
最初のステップは、node-sassを再構築node_modulesするのnpm installではなく、を削除して実行することです。
Nikhil Nanjappa

295

注:私はVS 2015、64ビットWindows 7を使用しています。

VS 2017およびVS 2019でも機能します(返信からこの投稿まで)

Task Runner Explorerがタスクを読み込めない

VS 2015の場合

  • 移動:ツール>オプション>プロジェクトとソリューション>外部Webツール

VS 2017(.3)の場合

  • ツール>オプション>プロジェクトとソリューション> Webパッケージ管理>外部Webツール(@nothrowごと)

VS 2017&2019では、$(PATH)を$(VSINSTALLERDIR)\ Web \ Externalの上に置く必要もあります


  • $(PATH)が$(DevEnvDir)\ Extensions \ Microsoft \ Web Tools \ Externalになるように並べ替えます

enter image description here


削除node_modulesして実行npm installした後、npm rebuild node-sass 何もしませんでした


5
VS2015を使用している場合は、必ずこの回答で説明されている変更を行う必要があります。この問題を修正するために必要なのは、おそらくこれだけです。
ボンネビル2017年

12
これは、VS2017の新しいインストールでも機能しました。
サリン

8
VS2017.3では、設定へのパスはTools > Options > Projects and Solutions > Web Package Management > External Web Tools
nothrow

6
くそー!私はそれを理解することは決してないだろう...愚かなjavascriptの愚かなノードで愚かなsassをコンパイルするすべて
L.Trabacchin

7
これはまだVS 2019でのことですが、確認することができます
JamesT

140

Windows環境でも同じ問題が発生し、次のエラーが表示されました。

エラー:バインディングがありませんC:\ Development {ProjectName} \ node_modules \ node-sass \ vendor \ win32-ia32-47 \ binding.node
Node Sassは現在の環境のバインディングを見つけることができませんでした:Node.js 5のWindows 32ビット。バツ
次の環境のバインディングが見つかりました:
   6.xを備えたWindows 64ビット

npmここの他の回答にリストされているコマンドはありません(npm installnpm rebuild node-sassなど)が働いていません。

代わりに、不足しているバインディングをダウンロードして、適切な宛先フォルダーに配置する必要がありました。

バインディングはgitにあります。/node_modules/node-sass/vendor/エラーメッセージで後に識別されたフォルダー名(この場合は 'darwin-x64-11')とファイルを一致させてください。darwin-x64-11_binding.nodeファイルです)。

プロジェクトに不足しているフォルダーを作成し(/node_modules/node-sass/vendor/darwin-x64-11)、.nodeファイルを新しいディレクトリにコピーし、名前をに変更しますbinding.nodeます。

Node-sassリリースURL:https : //github.com/sass/node-sass/releases


3
また私のために働いた、ありがとう!node_modulesのクリーンアップ、キャッシュの削除、rifraf、node-sassの再構築、npmを使用したコマンドラインからの代わりにVS2015からの再構築を試行し、最後にこれを修正しました。
Artur Carvalho

1
@JanCiołek私はこれが一度だけ起こったので、これをやり直す必要はありませんでした。バージョン固有かどうか、または特定のインストールに問題があるだけかどうかはわかりませんが、これ以上の解決策はありませんでした(ここでの他の回答はうまくいきませんでした)。厄介なこともそうでないことも、この問題のいくつかのバリエーションに必要な解決策のようです。
Beofett

1
@Beofettこのバグは私の時間の多くを食べました、私はこのスレッドで言及されたすべてを行いましたが、コンパイルを実行するのを忘れました。ありがとう!
JanCiołek2018

4
これは私にとって唯一の答えですが、リンクされたURLではなくgithub.com/sass/node-sass/releasesでバインディングが見つかりました。乾杯
clapas

2
@Beofettありがとうございます。あなたの答えは私をWindowsとMac OSXでIonicプロジェクトを実行するために救いました。
Marcus Crisostomo

138

私のために働いた:

node-sassフォルダを削除してを実行するだけnpm installです。


4
これも私にとってはうまくいきます。明らかにノードのバージョンが競合しています。ありがとう!
リズレモン

1
次のディレクトリを削除する必要がありました:C:\ Users \ your_user_name \ AppData \ Roaming \ npm-cache
Matt

7
これはうまくいきました!npm rebuild node-sass私にとってはうまくいきませんでした。(Mac with WebStorm)
Jackpile 2018年

3
これは私のために働いた唯一の解決策です!npm rebuild node-sass --forceどちらも動作しませんでした。
bigsee

これは答えとしてマークする必要があります。今まで、なぜ私のソリューションがより高いバージョンのノードをターゲットにし続け、nodesassに関するエラーメッセージを表示し続けるのか、まったくわかりませんでした。Azureパイプラインで、ノードのバージョンを必要なバージョンに強制する手順がありました。今、私はそのステップを取り除くことができます!
James Blackburn

117

ただ実行する: npm rebuild node-sass --force


上記が何らかの理由でうまくいかなかった場合は、これを試してください:

  1. node-sass下のフォルダを削除node_modules
  2. npm install

私の場合、それも見つけることができませんPythonでした。

次の手順で問題が解決しました(Windows):

npm rebuild node-sass --force
-- cannot find python.exe, if you have Python installed, add it to your path:
set PYTHON=C:\Python27\Python.exe
-- else: download python "Windows x86-64-MSI" installer from https://www.python.org/downloads/release/python-2714/
-- install python
-- at installation start check: add env variable to path
-- after successfull installation:
npm rebuild node-sass --force
-- finished successfully

1
上記は私にとってはうまくいきましたが、2つの異なるフォルダーの2つの異なるアプリで2回発生しました。Pythonのインストールは1回限り(つまり、他のアプリで2回目にエラーが発生した場合は不要)であり、最後のnpm run buildコマンドは(少なくとも明示的には)必要ありませんでしたが、再構築を実行する必要がありました-両方のアプリで2回強制します。
Greg Trevellick 2018

31

npm rebuild node-sass --force

または、コンテナー内でnode-sassを使用している場合:

docker exec <container-id> npm rebuild node-sass --force

このエラーは、node-sassに現在のオペレーティングシステムに対する正しいバインディングがない場合に発生します。

Dockerを使用する場合、このエラーは通常node_modules、Dockerfileのコンテナーファイルシステムに直接追加する(またはDockerボリュームを使用してそれらをマウントする)と発生します。

コンテナのアーキテクチャは、おそらく現在のオペレーティングシステムとは異なります。たとえば、macOSにnode-sassをインストールしましたが、コンテナでUbuntuを実行しています。

コンテナー内からnode-sassを強制的に再構築すると、node-sassはコンテナーのオペレーティングシステムに適切なバインディングをダウンロードします。

詳細については、再現ケースを参照しください。


1
異なる環境で同じ問題に直面する:-ユニットテスト用のMacOSでの開発-docker-composeを使用した開発(システムの完全な相互作用のため)-高山ベースのOSでのprod; npm installアーキテクチャに依存するモジュールがある場合、Dockerにマウントする(またはしない)と(またはしない)には問題があります。のようなNodeJSモジュールで発生する場所に応じて、ダーウィンまたはLinuxバイナリを取得するnpm inode-sass@google-cloud/pubsub
Laurent

dockerのソリューションについて言及していただきありがとうございます。これがまさに私にとっての解決策です。
Joshua Soileau

私が持っていた/node_modulesバインドがで容器に装着されました/app/node_modules。私NODE_PATH/node_modules(存在していた)別の場所にいたはずですが、ランダムに問題を引き起こし始めました。私は両方の場所にインストールしていたので、私のprettierの開発担当者はvscodeで動作しました。おっと。奇妙なもの。港湾労働者の言及<3をありがとう
ニックブレイディ

25

私にも同様の問題があり、その理由は、私のマシンに2つのバージョンのNodeがインストールされていたためです。1つは「グローバル」、もう1つはプロジェクトレベルです。Sassは、GulpビルドがNode.js 4.xバージョンで実行されている場合にのみ正しくビルドされるため、使用しているNodeのバージョンをアップグレードしてください。

PS:プロジェクトのnode_modulesフォルダーを完全に削除し、最初から再構築すると、npmは現在のシステムとノードのバージョンに応じた正しい依存関係をダウンロードします。


神に感謝します。私は実際に最初に私のMacbookでノードをダウングレードしようとし、30分後に諦めました
Cpt。Senkfuss

17

場合によっては、node-sassライブラリをアンインストールしてインストールする必要があります。試してください:

npm uninstall --save node-sass

そして

npm install --save node-sass

これを私のために見てください、ここスタックリンクがあります



12

私の特定のケースでは、上記の答えはどれもうまくいきませんでした。それでそれはうまくいった:

rm -rf node_modules 
rm -rf /tmp/* 
rm -rf /root/.npm/node-sass 
npm uninstall --save node-sass 
npm cache clean --force 

npm cache verify キャッシュに何も残っていないことを確認する

npm install

私はシーケンスを再現しようとはしていませんが、うまくいったのは上記の組み合わせでした。さらに、次のことも試すことができます。

npm install --save node-sass または npm install node-sass -g

npm rebuild node-sass
npm install bindings

11

* Docker関連の回答はこちら*

この問題または同様の問題が発生していて、Dockerを使用している場合の回答。

原因:現在のファイル構造をDockerコンテナー内にコピーすると、ノードモジュールが1つのOSシステムから別のOSシステムにコピーされることがあります(MacからLinuxコンテナーなど)。

解決:

を追加し.dockerignore、中に追加:

node_modules

これにより、npm installローカルマシン環境ではなく、Docker環境のバインディングがインストールされます。


9

同じ問題がありました

    throw new Error(errors.missingBinary());
    ^

Error: Missing binding /path/to/project/node_modules/node-sass/vendor/linux-x64-47/binding.node
Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 5.x

Found bindings for the following environments:
  - Linux 64-bit with Node 0.10.x
  - Linux 64-bit with Node.js 5.x

これは、異なるnodejsバージョンを使用してnpmをインストールしたためです。node_modulesフォルダーを削除してインストールして開始してください。

cd your_project
rm -rf node_modules
npm install
npm start or gulp or whatever

nvmを使用している場合は、

nvm use stable // or your favorite version
// remove node_module directory
npm install
npm start or gulp or whatever

8

Node v7.4.0 Current(最新機能)でも同じ問題が発生しました。

ここを読んでNodeをv6.9.4 LTSにダウングレードし、実行後npm rebuild node-sassにバイナリをダウンロードしてすべてが機能し始めました。

https://github.com/sass/node-sass/releases/download/v3.13.1/win32-x64-48_binding.node
Download complete からバイナリをダウンロードしています。]-:
バイナリをD:\ xxx \ xxx-xxx \に保存しましたnode_modules \ node-sass \ vendor \ win32-x64-48 \ binding.node
バイナリをC:\ Users \ user \ AppData \ Roaming \ npm-cache \ node-sass \ 3.13.1 \ win32-x64-48_binding.nodeにキャッシュする`


7

node-sassノードモジュールはdarwin、ノードのバージョンに依存するバイナリファイルを使用します。この問題は、バイナリファイルがダウンロードされていないか、間違ったバイナリファイルがダウンロードされた場合に発生します。

ノードsassエラー

ノードモジュールを再インストールすると、node-sassの予想されるバイナリがダウンロードされます。

Macユーザーの場合:

rm -rf node_modules
npm cache clean --force
npm i
npm rebuild node-sass --force

Windowsユーザーの場合:

rmdir node_modules
npm cache clean --force
npm i
npm rebuild node-sass --force

ただし、ユーザーによっては、ノードのバージョンとnode-sassのバージョンの互換性を確認する必要があります。以下の表を使用して互換性を確保し、上記のコマンドを再度実行してこの問題を修正してください。

Node JS互換のnode-sassバージョン

それでも問題が解決しない場合は、node-sassでサポートされている環境のリストを確認してください:-https: //github.com/sass/node-sass/releases/


5

Visual Studio 2015/2017の場合は、右クリックしてpackage.json[パッケージの復元]をクリックします。

これにより、Visual Studio Tools External Toolsのnpmが実行され、それに基づいてバインディングが再構築されます。


素晴らしくて簡単な解決策、そして私が試した上記のいくつかからうまくいった唯一のもの。ありがとう!
Eli Gassert、2018年

4

これは、ワークステーションでNode.jsの更新を実行し、グローバルにnode-sassを使用しているときに発生します。

したがって、node-sassをグローバルにアンインストールする必要があります

npm uninstall -g node-sass

そして、あなたはそれを再びグローバルにインストールする必要があります

npm install -g node-sass

いい説明だ!
Michael Czechowski

@ Fay007あなたはより多くの情報を提供できますか?エラーがありますか?教えてください
ドメニコ

4

npmキャッシュを更新して、

npm cache clean --force  
npm install

同じケースで常に私にとってはうまくいきます。

UPD: あなたの問題は、グローバルsasslibがないためかもしれません。

npm install -g sass

4

コメントを実行するだけです。

npm rebuild node-sass

コーディングをお楽しみください...


OPはそれを試したがうまくいかなかったと言った。そして私もそうでした、そしてそれは私にとってもうまくいきませんでした。代わりに、実行していたノードのバージョンをダウングレードする必要がありました。
エイドリアンレジャース

4

ポスト依存関係ノード-SASSについてはされてインストールされ得ていないことなく、package.json内部ノード-SASS

手動で解決して実行する

node node_modules/node-sass/scripts/install.js 

クレジット:リンク


これをありがとう、これは私の問題を完全に解決しました!:)
ルイス・クラーク

知って嬉しい:)
ムクンダン

3

これは通常、実行後に環境が変化したために発生しますnpm install。実行npm rebuild node-sassすると、現在の環境のバインディングが構築されます。


3

私はWindows 8ユーザーで、最近Node to v8.11.1とnpm to v6.0.0を更新し、同様の問題に直面しました。何も動作しませんでした- npm install -g node-sass@latestまたはnode-sassプロジェクトからディレクトリを削除していますnode_modules/でした私のために機能したものはありませんでした。

Laravel Mixがブラウザコンソールにエラーが発生し、ノードが見つからないことを通知していました。 win32-x64-57。インターネット接続が遅いためか、更新中にノードが見つからなかったためか、わかりません。

したがって、いくつかの回答でNode-Sassのリリースを確認するように指示され、解決策が見つかりました。

  1. ステップ1:コマンドを使用して、ノード・SASSのバージョンを確認しますnpm view node-sass version{your version}ステップ4で)
  2. ステップ2:にゲットノードサスリリース
  3. ステップ3:リリースを取得し、すべてのリリースの下にリストされているアセットで不足しているノードを見つけて、ファイルをダウンロードします
  4. ステップ4: PCにアクセスしC:\Users\{User}\AppData\Roaming\npm-cache\node-sass\{your version}\、ダウンロードした.nodeファイルをバージョンフォルダーに入れます

これで完了です。

私の場合、node-sassのバージョンは4.9.0で、見つからないノードはwin32-x64-57_binding.nodeだったので.node4.9.0リリースからファイルをダウンロードして、ステップ4を実行しました。


2

AspNetCoreアプリの作成中にVisual Studio 2015 Community Editionで発生した同様のエラーは次のとおりです。

Node Sass could not find a binding for your current environment: Windows 32-bit with Node.js 5.x
Found bindings for the following environments:
  - Windows 64-bit with Node.js 6.x
This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass` to build the binding for your current environment.
    at module.exports ([..]\node_modules\node-sass\lib\binding.js:15:13)
    at Object.<anonymous> ([..]\node_modules\node-sass\lib\index.js:14:35)
    at Module._compile (module.js:397:26)
    at Object.Module._extensions..js (module.js:404:10)
    at Module.load (module.js:343:32)
    at Function.Module._load (module.js:300:12)
    at Module.require (module.js:353:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> ([..]\node_modules\gulp-sass\index.js:187:21)
    at Module._compile (module.js:397:26)

上記のエラーから、nodejsのバインディングのバージョンの不一致が原因であることがわかります。

Node Sassは現在の環境のバインディングを見つけることができませんでした: Node.js 5.xを備えたWindows 32ビット

次の環境のバインディングが見つかりました:-Node.js 6.xを備えたWindows 64ビット

私が見つけた解決策は

  • nodejs Windowsバージョンをインストールします。
  • 外部Webツールでノードjs(C:\ Program Files \ nodejs)のパスを追加します(Rob Scottの回答を参照)、
  • nodejsパスを$(PATH)の上に移動します。

2

これは私のために働きましたnode_modulesIDEからパッケージを削除してから復元し、次にnpm rebuild node-sass


2

VS 2017 ProfessionalからEnterpriseにアップグレードするときにこの問題が発生しました

  1. VSを閉じる
  2. node_modulesを削除する
  3. オープンVS
  4. package.jsonを右クリックし、「パッケージの復元」を選択します

2

インストール/再構築ソリューションのどれも私にとって問題を解決しませんでした(gulpを使用)。

ここに私がそれを解決した方法があります:

1)不足しているバインディングファイルをリポジトリからダウンロードします

2)ファイルの名前を変更しますbinding.node

3)node_modules/node-sass/vendor/darwin-x64-11(エラーメッセージからのパス)ディレクトリが存在しない場合は作成します。

4)バインディングファイルを追加 node_modules/node-sass/vendor/darwin-x64-11



2

端末/コマンドプロンプトで次のように表示された場合:

Node Sassはバインディングを見つけることができませんでした 
現在の環境: 
OS X 64ビット、ノード0.10.x

そしてあなたは次のようなコマンドを試しました:

npmキャッシュクリーン--force 
rm -rfノードモジュール 
npmインストール 
npm rebuild node-sass 
npm rebuild node-sass

まだ機能しません。

これをターミナルで手動で実行するだけです:

ノードnode_modules / node-sass / scripts / install.js

今走る

npmスタートまたは糸スタート


1
最終的に!ありがとうございました。これが今のところ私にとって有効な唯一の解決策です。私は2日間もがきました。理由は何ですか?
burakcalik

1
はいはいはい!最終的に!ジャッキー-ありがとうございます。
user2051552

1

node-sassはインストールスクリプトを実行して、必要なバイナリをダウンロードします。環境変数、.npmrc変数、またはプロセス引数が設定されていない場合、バイナリは現在のプロセスプラットフォーム、アーキテクチャ、およびノー​​ドABIバージョンを使用して決定されます。したがって、1つのアプリケーションでnode installを実行してから、異なるプラットフォーム/アーキテクチャ/ ABIのアプリケーションでnode-sassを実行しようとすると、バイナリはダウンロードされません。解決策は、バイナリを手動でダウンロードするか、環境変数(SASS_BINARY_NAME)または.npmrc変数(sass_binary_name)を使用してバイナリバージョンを修正することです。

このロジックは、node-sass \ lib \ extensions.jsのgetBinaryPath関数で確認できます。


1

同じ問題がありました。ここで適切な解決策を見つけることができなかったので、私は私を見つけました:

@ Rob-Scottソリューションに触発され、Node.jsの2つのバージョンがインストールされている可能性があることを指摘したところC:\Program Files (x86)\nodejs、VSのデフォルトインストールに加えてnode.jsバージョンがインストールされていることに気付きました。

私の解決策は非常に簡単でした:

  • [ツール]> [オプション]> [プロジェクトとソリューション]> [Webパッケージ管理]> [外部Webツール]に移動します
  • クリックadd an entry(ボタンの右上のブロックの左端)
  • を入力しC:\Program Files (x86)\nodejs、を押して検証しますenter
  • リストの一番上に持ってくる
  • 楽しい

おそらくNode.jsはPATH変数にうまく設定されていませんが、これは私の作業中の非常に迅速な解決策です、私の2セント:)


1

最初に新しいデフォルトのノードバージョンを選択するnvm use ***nvm install ***、プロジェクトのすべてのnode_modulesを削除する必要がありnpm iました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.