web-dev-qa-db-ja.com

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

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

/Users/warren/Sites/random-docs/my-cms/node_modules/node-sass/vendor/darwin-x64-11/binding.nodeがありません
Node Sassは現在の環境に対するバインディングを見つけることができませんでした:OS X 64-bit with Node 0.10.x

走ってみた

npm rebuild node-sass

それは言う

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

node -vを実行するとv6.2.2になります

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

329
wazzaday

私は同じ問題を抱えていた  

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

以下の環境でバインディングが見つかりました。
- Node.js 4.xを搭載したOS X 64ビット

私の問題を解決する方法

プロジェクトフォルダに入って実行します。

npm rebuild node-sass
518
Bipon Biswas

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

VS 2017でも動作します(この投稿への返信から)

Task Runner Explorerはタスクをロードできません

VS 2015の場合

  • [ツール]> [オプション]> [プロジェクトとソリューション]> [外部Webツール]に移動します。 

VS 2017の場合(.3)

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

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


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

enter image description here


node_modulesを削除してnpm installを実行してからnpm rebuild node-sass を実行しても、何もしません .

234
Rob Scott

私は、Windows環境でも同じ問題を抱えていて、次のエラーを受け取りました。

エラー:バインディングC:\ Development {ProjectName}\node_modules\node-sass\vendor\win32-ia32-47\binding.nodeがありません
Node Sassは現在の環境に対するバインディングを見つけることができませんでした。Windows32-bit with Node.js 5.x
以下の環境に対するバインディングが見つかりました。
- Node.js 6.xがインストールされたWindows 64ビット

他の回答(npm installnpm rebuild node-sassなど)にリストされているnpmコマンドはどれも機能しませんでした。

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

バインディングは 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

106
Beofett

私のために働きました:

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

96
Codiee

次のコマンドを実行してください。

npm rebuild node-sass --force


私の場合は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
66
Legends

私は同様の問題を抱えていました、そして、その理由は私のマシンにインストールされたNodeの2つのバージョンがあったということでした:1つは "グローバル"ともう1つはプロジェクトレベルです。 Node.js 4.xバージョンなので、必ず使用しているNodeのバージョンをアップグレードしてください。

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

17

修正する

npm rebuild node-sass --force

または、コンテナ内でnode-sassを使用している場合は、次のようにします。

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

説明

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

私の経験では、Dockerファイルのコンテナファイルシステムに直接node_modulesを追加すると(またはDockerボリュームを使用してマウントすると)、通常起こります。これは、コンテナのアーキテクチャが現在のオペレーティングシステムとは異なることが多いためです。たとえば、macOSにnode-sassをインストールしましたが、私のコンテナはUbuntuを実行しています。

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

詳細については、 私の問題を解決した を参照してください。

15

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

npm uninstall --save node-sass

そして

npm install --save node-sass

この作品を見てください。 Stack link here

13
core114

サフィックス--forceを追加してみてください

npm rebuild node-sass --force
12
user3890355

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 からバイナリをダウンロードする
ダウンロード完了 。] - :
バイナリを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`へのバイナリのキャッシュ

8
krankuba

私は同じ問題を抱えていた 

    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インストールしたからです。

cd your_proyect
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
7
gsalgadotoledo

それだけのコメントを実行してください。

npmはnode-sassを再構築します

あなたのコーディングを楽しんでください...

5
mahendren

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

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

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

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
3
Alex Pandrea

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

3
Kisz Na

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

Laravel Mixが私のブラウザのコンソールにノードが見つからないというエラーを投げていました:win32-x64-57。更新中にインターネット接続が遅くなったなどの理由でノードが見つからなかったかどうかわかりません。

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

  1. ステップ1: 次のコマンドを使用してnode-sassのバージョンを確認します。npm view node-sass version(ステップ4の{your version}
  2. ステップ2: /に移動 Node-Sass Releases
  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なので、 4.9.0 release から.nodeファイルをダウンロードして手順4に従いました。

2
Mayeenul Islam

これはあなたのワークステーションでNode.jsのアップデートを実行していて、あなたがグローバルにnode-sassを使っている時に起こります。

だからあなたはグローバルにnode-sassをアンインストールするべきです

npm uninstall -g node-sass

それから、もう一度グローバルにインストールする必要があります。

npm install -g node-sass
2
Domenico

node_modulesを削除してからIDE、そしてnpm rebuild node-sassからパッケージを復元しました。

2
Nouman Bhatti

ルートフォルダに以下のコマンドを書いてください。

npm再構築ノードサス

100%作品...

2
Yogesh Patil

この問題、またはそれに似た問題が発生していて、Dockerを使用しているかどうかについて答えてください。

原因:現在のファイル構造をDockerコンテナ内にコピーするとき、ノードシステムをあるOSシステムから別のOSシステムにコピーする可能性があります(たとえば、MacからLinuxコンテナ)。

溶液:

.dockerignoreを追加し、その中にadd:

node_modules

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

2
farrellw

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は現在の環境に対するバインディングを見つけることができませんでした: Windows 32ビットNode.js 5.x

以下の環境でバインディングが見つかりました。 - Windows 64ビット版Node.js 6.x

私が見つけた解決策は 

2
Matt R

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

1
obotezat

私は同じ問題を抱えていました。ここでは適切な解決策を見つけることができませんでした。

@ Rob-Scottのソリューションなど、2つのバージョンのNode.jsをインストールできることを示唆しているので、C:\Program Files (x86)\nodejsに行き、VSのデフォルトインストールに加えてnode.jsバージョンがインストールされていることに気付きました。

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

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

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

1
Jean

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

npm cache clean --force  
npm install

それは同じケースでいつも私のために働きます。

UPD: あなたの問題は、グローバルsasslibの欠如によるものかもしれません。

npm install -g sass
1
AlexK

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

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

Dockerイメージを作成してそれをローカルで実行しようとしたとき、私はこれと同じ問題にぶつかりました。次のものを含む.dockerignoreファイルを追加する必要があります。 .DS_Store .git .gitignore .idea log/* target tmp node_modules client/node_modules spec/internal/public/assets public/assets

1
Chris J Boyle

Nvm from systemノードに切り替えた人々にとって、~/.npmおよび~/.node-gypフォルダを削除していない場合、おそらく~/.node-gypcould内のノードバージョンが異なるためにこの問題が発生する可能性があります。 

いずれにせよ、それらのフォルダは削除されるべきです。

0
prasanthv

Macを使用している場合は、Xcodeをインストールします。

0
eomeroff

私にとっての問題は、Task Runner Explorerが私のプロジェクトのソリューションをターゲットにしていたことです。ドロップダウンリストを使用してProject Runner Explorerの更新ボタンの隣にあるプロジェクト自体に変更すると、関連タスクが表示されました。

0
Lewis Hamill

Xxx.nodeファイル(私の場合はwin32-x64-51)の名前をbinding.nodeに変更し、xxxフォルダー(私の場合はwin32-x64-51)に貼り付けてください

0
Devdutta Natu

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

私がそれを解決した方法は次のとおりです。

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

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

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

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

0
Don Peat

私はこれを修正し、Java_HOMEをx86から​​x64に変更しました。 Mavenはx86上で稼働していましたが、ノードはx64を使用していました。/nodeと/ node_modulesを削除して、もう一度ビルドしてください。

0

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

Node-sass\lib\extensions.jsのgetBinaryPath関数でこのためのロジックを確認できます。

0
Tevin

私には、ファイルにフィルタを適用し、woffファイルを破損したのは、maven-war-pluginでした。

<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
    <webResources>
        <resource>
            <directory>dist</directory>
            <filtering>true</filtering>
        </resource>
    </webResources>
</configuration>

<filtering> true </filtering>を削除します

フィルタリングが必要な場合は、次のようにすることもできます。

<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <configuration>
        <webResources>
            <resource>
                <directory>dist</directory>
                <excludes>
                    <exclude>assets/**/*</exclude>
                </excludes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>dist</directory>
                <includes>
                    <include>assets/**/*</include>
                </includes>
            </resource>
        </webResources>
    </configuration>
</plugin>
0
Viktor Eriksson

私は私が見つけたすべての方法を試しました。

そのフォルダの奇妙な振る舞いに気づきました。 VS端末から 'node_sass'フォルダに「cd」しようとしたところ、「フォルダが見つかりませんでした」と表示されましたが、Finderで見られました。

vS端末からのchmodが 'Sudo'コマンドを実行してもフォルダが見つかりません。

私はネイティブのMacOs端末からchmod-edをした直後にnodeで再構築しました。

0
diginix

sassパッケージを再びアンインストールしてインストールすることは手動のプロセスではうまくいくが、 自動展開/ CI/CDの場合 より一般的なアプローチが必要であることを示唆している私にとって効果的だったのは、異なる環境のContinuosの展開です。

  1. デプロイ前にrimrafを使用して古いnode_modulesを削除する

    rimraf node_modules

  2. Npm package.jsonsassパッケージを更新して、ソース管理にコミットします。 

次回の展開では、すべての環境で自動的に節約されます。

0
Pranav Singh

これは他の誰にも起こりえないことですが、私の場合、プロジェクトを再起動することを決めたときにこのエラーが表示されました(別のvue.jsチュートリアルに従うため)。

私の問題を作成した手順は次のとおりです。

# move my existing project
mv project-name project-name-old
# create a new project
vue create project-name
# run server
npm run server

問題は、以前のサーバーが別のターミナルタブで実行されていたことでした。 localhost:8080では、まだ表示されていたページは古いプロジェクトでした。

ターミナルで古いサーバーをシャットダウンし、「npm run serve」を再度実行するか、localhost:8081を表示するだけで済みました。

万が一これが他の人を30分混乱させたり、笑ったり笑ったりする場合に備えて。

0
althras

あなたのシステムをチェックしてください:あなたのシステムは2つの異なるNode.jsインストールを持っていますか?

Nodejsからnodeをインストールする場合、デフォルトのインストールディレクトリは C:\Program Files\nodejs ここにノードバージョン6.xxをインストールしました。

あなたのVS External Webツールディレクトリをチェックしてください。 C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Web\External ノードバージョン5.xxがインストールされています。

1つの回避策は次のとおりです。

  • C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Web\Externalディレクトリのバックアップを作成します。
  • C:\Program Files\nodejsディレクトリの内容をコピーして 
  • C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Web\Externalディレクトリに貼り付けます。
  • ソリューションからnode_modulesディレクトリを削除します。
  • プロジェクトを再実行してください。 エラーメッセージが表示された場合は、もう一度プロジェクトを実行してください。

それでもうまくいかない場合

  • ソリューションからnode_modulesディレクトリを削除します。

注:$はコマンドプロンプトです

$  npm install 
…
$ npm run build:dev

プロジェクトを再実行してください。

0
John Kocer
  1. Node_modulesフォルダを削除します。
  2. 依存関係を再度インストールしてください。 (npm i)
0
Shivam Kubde

私はただnpm rebuild node-sassの代わりにnpm rebuildを実行して問題を解決しました。

0
Alien13

Visual Studio 2017を開く
[ツール] - > [オプション]を選択します。
[プロジェクトとソリューション]、[Webパッケージ管理]の順にクリックします。
$(PATH)をそのリストの一番上に移動してそのウィンドウを閉じます。
Visual Studioを再起動してください。
これは私のケースではうまくいきました。私のノードのバージョンは11.xだからです。

0