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を再インストールしようとしましたが、成功しませんでした。何も変わりません。
おそらく、使用中にnode-sassを再インストールしようとしました。
npm install node-sass
または
npm uninstall node-sass
npm install node-sass
ただし、node-sassはCバージョンのSassです。 npm rebuild を使用する必要があります。
npm rebuild node-sass
ノード4.x以降を使用している場合は、gulp-sassを再インストールする必要があります。
npm uninstall --save-dev gulp-sass
npm install --save-dev gulp-sass@2
既存の/node_modules
フォルダーを削除し、npm update
を実行して、この問題を修正しました
この回避策( 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
これは私のために働いた唯一のソリューションです、
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
上記の2つの答えを組み合わせることでうまくいきました。
Sudo npm uninstall --save gulp-sass
npm install --save gulp-sass@2
npm update
npm rebuild node-sass
これを解決して、指定された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からバインディングをコピーします。
私の解決策は、v0.10.25
にダウングレードすることでした(n
を使用する場合は、Sudo n 0.10.25
を試してください)
これはNodeバージョンの問題でした。nvmを使用して、バージョンを0.10.32のようにバックトラックしてみてください。これは私のために働いた。 4.2.2を実行していました
私にとって、この問題は、ビルドシステム(Travis CI)で.travis.yml
ファイルで何かおかしなことをすることで発生しました。実際、私はnpm install
beforenvm use 0.12
を呼び出していましたが、これによりnode-sass
ではなく0.10
に対して0.12
がビルドされていました。私の解決策は、nvm use
ファイルの.travis.yml
セクションからbefore_script
をnpm install
セクションのbefore_install
コマンドの前に移動するだけでした。
gccを4.4.xから4.7.xに更新 でこの問題を解決しました
Sudoまたは再インストールの必要はありません。これはいつも私のために働いています:
nvm use 0.12.2