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を実行しようとしましたが、どちらも問題は解決しませんでした。何か案は?
私は同じ問題を抱えていた
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
注VS 2015、64ビットWindows 7を使用しています。
VS 2017でも動作します(この投稿への返信から)
Task Runner Explorerはタスクをロードできません
VS 2015の場合
VS 2017の場合(.3)
VS 2017では、$(PATH)を$(VSINSTALLERDIR)\ Web\Externalの上に配置する必要もあります。
node_modules
を削除してnpm install
を実行してからnpm rebuild node-sass
を実行しても、何もしません .
私は、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 install
、npm 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
私のために働きました:
node-sass フォルダを削除して npm install 。を実行するだけです。
次のコマンドを実行してください。
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
私は同様の問題を抱えていました、そして、その理由は私のマシンにインストールされたNodeの2つのバージョンがあったということでした:1つは "グローバル"ともう1つはプロジェクトレベルです。 Node.js 4.xバージョンなので、必ず使用しているNodeのバージョンをアップグレードしてください。
シモンズ:あなたがあなたのプロジェクトの node_modules フォルダを完全に削除し、最初から再構築するならば、npmはあなたの現在のシステムとノードバージョンの正しい依存関係をダウンロードするでしょう。
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はコンテナーオペレーティングシステム用の正しいバインディングをダウンロードします。
詳細については、 私の問題を解決した を参照してください。
場合によっては、node-sassライブラリをアンインストールしてインストールする必要があります。試してください:
npm uninstall --save node-sass
そして
npm install --save node-sass
この作品を見てください。 Stack link here
サフィックス--forceを追加してみてください
npm rebuild node-sass --force
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`へのバイナリのキャッシュ
私は同じ問題を抱えていた
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
それだけのコメントを実行してください。
npmはnode-sassを再構築します
あなたのコーディングを楽しんでください...
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
これは通常、npm install
を実行してから環境が変更されたために発生します。 npm rebuild node-sass
を実行すると、現在の環境のバインディングが構築されます。
私は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のリリースを確認するよう指示され、その解決策が見つかりました。
npm view node-sass version
(ステップ4の{your version}
)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に従いました。
これはあなたのワークステーションでNode.jsのアップデートを実行していて、あなたがグローバルにnode-sassを使っている時に起こります。
だからあなたはグローバルにnode-sassをアンインストールするべきです
npm uninstall -g node-sass
それから、もう一度グローバルにインストールする必要があります。
npm install -g node-sass
node_modules
を削除してからIDE、そしてnpm rebuild node-sass
からパッケージを復元しました。
ルートフォルダに以下のコマンドを書いてください。
npm再構築ノードサス
100%作品...
この問題、またはそれに似た問題が発生していて、Dockerを使用しているかどうかについて答えてください。
原因:現在のファイル構造をDockerコンテナ内にコピーするとき、ノードシステムをあるOSシステムから別のOSシステムにコピーする可能性があります(たとえば、MacからLinuxコンテナ)。
溶液:
.dockerignore
を追加し、その中にadd:
node_modules
これにより、ローカルマシン環境ではなく、npm install
がdocker環境用のバインディングをインストールします。
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
私が見つけた解決策は
最初に新しいデフォルトのノードバージョンnvm use ***
またはnvm install ***
を選択してから、プロジェクト内のnode_modules内のすべてを削除し、npm i
をもう一度削除する必要がありました。
私は同じ問題を抱えていました。ここでは適切な解決策を見つけることができませんでした。
@ Rob-Scottのソリューションなど、2つのバージョンのNode.jsをインストールできることを示唆しているので、C:\Program Files (x86)\nodejs
に行き、VSのデフォルトインストールに加えてnode.jsバージョンがインストールされていることに気付きました。
私の解決策は非常に簡単でした。
add an entry
(ボタンの右上ブロックの一番左)をクリックしてください。C:\Program Files (x86)\nodejs
を入力し、enter
を押して検証しますおそらくNode.jsはPATH変数にうまく設定されていませんが、これは私の作業中の非常に迅速な解決策です。2セント:)
Npmキャッシュを更新して、
npm cache clean --force
npm install
それは同じケースでいつも私のために働きます。
UPD: あなたの問題は、グローバルsasslibの欠如によるものかもしれません。
npm install -g sass
VS 2017 ProfessionalからEnterpriseにアップグレードする際にこの問題が発生しました
Dockerイメージを作成してそれをローカルで実行しようとしたとき、私はこれと同じ問題にぶつかりました。次のものを含む.dockerignoreファイルを追加する必要があります。
.DS_Store
.git
.gitignore
.idea
log/*
target
tmp
node_modules
client/node_modules
spec/internal/public/assets
public/assets
Nvm from systemノードに切り替えた人々にとって、~/.npm
および~/.node-gyp
フォルダを削除していない場合、おそらく~/.node-gyp
could内のノードバージョンが異なるためにこの問題が発生する可能性があります。
いずれにせよ、それらのフォルダは削除されるべきです。
Macを使用している場合は、Xcodeをインストールします。
私にとっての問題は、Task Runner Explorerが私のプロジェクトのソリューションをターゲットにしていたことです。ドロップダウンリストを使用してProject Runner Explorerの更新ボタンの隣にあるプロジェクト自体に変更すると、関連タスクが表示されました。
Xxx.nodeファイル(私の場合はwin32-x64-51)の名前をbinding.nodeに変更し、xxxフォルダー(私の場合はwin32-x64-51)に貼り付けてください
どのインストール/再構築の解決策も私にとっては問題を解決しませんでした(gulpを使用)。
私がそれを解決した方法は次のとおりです。
1) repository から不足しているバインディングファイルをダウンロードします。
2)ファイルの名前をbinding.node
に変更します。
3)node_modules/node-sass/vendor/darwin-x64-11
(エラーメッセージからのパス)ディレクトリが存在しない場合は作成します。
4)バインディングファイルをnode_modules/node-sass/vendor/darwin-x64-11
に追加します
私はこれを修正し、Java_HOMEをx86からx64に変更しました。 Mavenはx86上で稼働していましたが、ノードはx64を使用していました。/nodeと/ node_modulesを削除して、もう一度ビルドしてください。
node-sassはインストールスクリプトを実行して必要なバイナリをダウンロードします。環境変数、.npmrc変数、またはプロセス引数が設定されていない場合、バイナリは現在のプロセスプラットフォーム、アーキテクチャ、およびノードABIバージョンを使用して決定されます。したがって、あるアプリケーションでnode installを実行してから、異なるplatform/architecture/ABIを持つアプリケーションでnode-sassを実行しようとしても、バイナリはダウンロードされません。解決策は、バイナリを手動でダウンロードするか、環境変数(SASS_BINARY_NAME)または.npmrc変数(sass_binary_name)を使用してバイナリバージョンを修正することです。
Node-sass\lib\extensions.jsのgetBinaryPath関数でこのためのロジックを確認できます。
私には、ファイルにフィルタを適用し、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>
私は私が見つけたすべての方法を試しました。
そのフォルダの奇妙な振る舞いに気づきました。 VS端末から 'node_sass'フォルダに「cd」しようとしたところ、「フォルダが見つかりませんでした」と表示されましたが、Finderで見られました。
vS端末からのchmodが 'Sudo'コマンドを実行してもフォルダが見つかりません。
私はネイティブのMacOs端末からchmod-edをした直後にnodeで再構築しました。
sass
パッケージを再びアンインストールしてインストールすることは手動のプロセスではうまくいくが、 自動展開/ CI/CDの場合 より一般的なアプローチが必要であることを示唆している私にとって効果的だったのは、異なる環境のContinuosの展開です。
デプロイ前にrimraf
を使用して古いnode_modules
を削除する
rimraf node_modules
Npm package.json
のsass
パッケージを更新して、ソース管理にコミットします。
次回の展開では、すべての環境で自動的に節約されます。
これは他の誰にも起こりえないことですが、私の場合、プロジェクトを再起動することを決めたときにこのエラーが表示されました(別の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分混乱させたり、笑ったり笑ったりする場合に備えて。
あなたのシステムをチェックしてください:あなたのシステムは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
プロジェクトを再実行してください。
私はただnpm rebuild node-sassの代わりにnpm rebuildを実行して問題を解決しました。
Visual Studio 2017を開く
[ツール] - > [オプション]を選択します。
[プロジェクトとソリューション]、[Webパッケージ管理]の順にクリックします。
$(PATH)をそのリストの一番上に移動してそのウィンドウを閉じます。
Visual Studioを再起動してください。
これは私のケースではうまくいきました。私のノードのバージョンは11.xだからです。