問題描述
我想在node.js v0.12
應用程序中使用node-sass
模塊來受益於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是Sass的C版本。您必須使用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
來解決此問題。
第四種辦法
這是唯一對我有用的解決方案,
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
第五種辦法
這個解決方法(http://forum.ionicframework.com/t/error-running-gulp-sass/32311/20)從我這裏開始工作。
從此設置開始:
Cordova CLI:5.3.3 Gulp版本:CLI版本3.9.0 Gulp本地版本:Local版本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操作係統:Mac OS X Yosemite節點版本: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/之後,我們可以檢查並重新安裝不帶’sudo’的npm,n或ionic的軟件。
我遵循了這一步驟:
npm install -g n
rm -R node_modules/
npm install node-sass@3.3.3
npm -g install node-gyp@3
npm uninstall gulp-sass
npm install gulp-sass@2
npm rebuild node-sass
ionic setup sass
為什麽是node-sass@3.3.3?因為它適用於最新的離子版本:https://github.com/driftyco/ionic/pull/4449
第六種辦法
將以上兩個答案結合起來對我來說很有效,外加其他功能:
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
所以我創建了這個Mapwin32-x64-46並從github複製了綁定。