web-dev-qa-db-ja.com

nodejsでnode-sassを使用すると、libsassバインディングが見つかりません

node-sassアプリケーションのnode.js v0.12モジュールを使用して、libsassのパフォーマンスを活用したいと思います。
モジュールをインストールするためにnpm i node-sassを実行しましたが、今のところエラーはありません。

これで混乱が始まります:
端末でREPLを開いてnode-sassを試してみるとすべてうまくいきますが、プロジェクトファイルに含めてnode myfile.jsを実行すると、次のエラーメッセージが表示されます。

Error: `libsass` bindings not found. Try reinstalling `node-sass`?

npmjs.com のモジュールの説明は、Ubuntuで#!/usr/bin/env nodeを解決する際に問題がある可能性があることと、これを修正する方法を示していますが、私のマシンではそうではありません。
有用なものが見つかりませんでしたので、お役に立てば幸いです。

Ubuntu 14.10でノードv0.12.2を使用しています。

追伸:node-sassを再インストールしようとしましたが、成功しませんでした。何も変わりません。

77
TorbenJ

おそらく、使用中にnode-sassを再インストールしようとしました。

npm install node-sass

または

npm uninstall node-sass
npm install node-sass

ただし、node-sassはCバージョンのSassです。 npm rebuild を使用する必要があります。

npm rebuild node-sass
116

ノード4.x以降を使用している場合は、gulp-sassを再インストールする必要があります。

npm uninstall --save-dev gulp-sass
npm install --save-dev gulp-sass@2
272
Wilson Silva

既存の/node_modulesフォルダーを削除し、npm updateを実行して、この問題を修正しました

20
Dallas Clark

この回避策( http://forum.ionicframework.com/t/error-running-gulp-sass/32311/2 )は私から機能しました。

このセットアップから開始:

Cordova CLI:5.3.3 Gulpバージョン:CLIバージョン3.9.0 Gulpローカル:ローカルバージョン3.9.0 Ionicバージョン:1.1.0 Ionic CLIバージョン:1.6.5 Ionic App Libバージョン:0.3.9 ios-deployバージョン:未インストールios-simバージョン:5.0.1 OS:Mac OS X Yosemite Nodeバージョン:v4.1.1 Xcodeバージョン:Xcode 6.4 Buildバージョン6E35b

「Sudo」コマンドの使用を避ける解決策を見つけました。これに続くnpmパーミッションを修正する必要があります: https://docs.npmjs.com/getting-started/fixing-npm-permissions およびNodeのパーミッションを修正: http://mawaha.com/permission-fix-node-js/ この後、npm、n、またはionicの「Sudo」なしでソフトウェアをチェックして再インストールできます。

私はこの手順に従いました:

npm install -g n
rm -R node_modules/ 
npm install [email protected] 
npm -g install node-gyp@3
npm uninstall gulp-sass
npm install gulp-sass@2 
npm rebuild node-sass 
ionic setup sass 

なぜ[email protected]ですか?最新のionicバージョンで動作するため: https://github.com/driftyco/ionic/pull/4449

8
Francesco

これは私のために働いた唯一のソリューションです、

Sudo npm install -g n
Sudo n 0.12.7
npm install node-sass@2
Sudo npm -g install node-gyp@3
npm rebuild node-sass
8
Stranger

上記の2つの答えを組み合わせることでうまくいきました。

Sudo npm uninstall --save gulp-sass
npm install --save gulp-sass@2
npm update
npm rebuild node-sass
4
Jadeye

これを解決して、指定されたbinding.nodeファイルで正しいディレクトリを作成しました。バインディングはgithubからダウンロードできます

https://github.com/sass/node-sass-binaries

エラーメッセージで、バインディングを見つけようとするパスを確認します。私の場合:

C:\ Users\Martijn\Documents\node_modules\gulp-sass\node_modules\node-sass\vendor\win32-x64-46

そこで、このマップwin32-x64-46を作成し、githubからバインディングをコピーします。

3
MartijnBrands

私の解決策は、v0.10.25にダウングレードすることでした(nを使用する場合は、Sudo n 0.10.25を試してください)

2
nathanhleung

これはNodeバージョンの問題でした。nvmを使用して、バージョンを0.10.32のようにバックトラックしてみてください。これは私のために働いた。 4.2.2を実行していました

1
Kevin Alwell

私にとって、この問題は、ビルドシステム(Travis CI)で.travis.ymlファイルで何かおかしなことをすることで発生しました。実際、私はnpm installbeforenvm use 0.12を呼び出していましたが、これによりnode-sassではなく0.10に対して0.12がビルドされていました。私の解決策は、nvm useファイルの.travis.ymlセクションからbefore_scriptnpm installセクションのbefore_installコマンドの前に移動するだけでした。

1
Alan H.

gccを4.4.xから4.7.xに更新 でこの問題を解決しました

0
worldask

Sudoまたは再インストールの必要はありません。これはいつも私のために働いています:

nvm use 0.12.2
0
alexfigtree