2015-04-05 42 views
68

我想在我的node.js v0.12應用程序中使用node-sass模塊,以從libsass的性能中受益。
我執行了npm i node-sass來安裝模塊,目前爲止沒有錯誤。
在nodejs中使用node-sass時找不到libsass綁定

現在的爛攤子開始:
如果我只是在終端打開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下使用node v0.12.2。

P.S .:我已經嘗試重新安裝node-sass但沒有成功。沒有什麼變化。

+0

如果Philipp的答案解決了您的問題,請接受。它解決了我的問題。 – Jazzy 2015-07-30 19:59:59

+0

在我更新到NodeJS發行版之後,我在我的Ionic項目中遇到了這個問題 - 輸出指示運行'npm rebuild node-sass',這爲我/我的環境擺脫了錯誤。 – Cody 2016-05-15 22:29:22

回答

113

你可能試圖重新安裝節點薩斯同時使用

npm install node-sass 

npm uninstall node-sass 
npm install node-sass 

但節點薩斯是無禮的C版。你必須使用npm rebuild

npm rebuild node-sass 
+3

這也適用於我,關心解釋爲什麼? :) – Sebastian 2015-05-22 07:20:14

+73

沒有爲我工作。 – code 2015-07-26 18:56:45

+8

當我嘗試重建命令時,我得到錯誤'錯誤:無法找到Python可執行文件「python」...不知道我的是一個C版本的Sass – Edd 2015-10-01 09:12:34

20

我解決了這個問題,刪除現有/node_modules文件夾,運行npm update

+1

嘗試了這個實際上,但在這種情況下,/ node_modules是在SVN控制下......刪除目錄,導致SVN樹不同步。否則它是一個不錯的選擇! – JsusSalv 2015-07-24 07:08:59

+0

不時發生這種情況,刪除'node_modules'並重新運行'npm install'也適用於我。 – Geo242 2015-09-30 00:11:50

+6

由於這個原因,源代碼管理是一個不好的地方來存儲依賴關係!它需要你的所有環境完全鎖定。 'package.json'是爲了描述你的依賴而設計的,你應該使用別的東西來在你的盒子上安裝你的依賴。 (有一個腳本調用npm install,或docker容器,或or) – AnilRedshift 2015-10-11 01:07:13

1

對於我來說,這個問題在我的構建系統(特拉維斯CI)做那種事造成的愚蠢在我的.travis.yml文件。實際上,我在nvm use 0.12之前打電話npm install,並且這導致node-sass0.10而不是0.12構建。我的解決方案只是將nvm use移出.travis.yml文件的before_script部分,直至位於before_install部分的npm install命令之前。

2

我的解決辦法是降級到v0.10.25(嘗試sudo n 0.10.25如果使用n

8

這種解決方法(http://forum.ionicframework.com/t/error-running-gulp-sass/32311/20)的工作形成了我。

與此設置開始:

科爾多瓦CLI:5.3.3 咕嘟咕嘟版本:CLI版本3.9.0 咕嘟咕嘟地方:本地版本3.9.0 離子版本:1.1.0 離子CLI版本:1.6 .5 Ionic App Lib版本:0.3.9 ios-deploy版本:未安裝 ios-sim版本:5.0。1個 操作系統:Mac OS X約塞米蒂 節點版本:V4.1.1 的Xcode版本:Xcode的6.4生成版本6E35b

我已經找到了解決辦法,以避免使用 '須藤' 命令。我們需要在此之前修復npm權限:https://docs.npmjs.com/getting-started/fixing-npm-permissions並修復Node的權限:http://mawaha.com/permission-fix-node-js/之後,我們可以檢查並重新安裝npm,n或離子的「sudo」軟件。

我跟着這個步驟:

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

爲什麼[email protected]?因爲它與最新版本離子的工作原理:https://github.com/driftyco/ionic/pull/4449

+0

非常感謝你這麼這麼。最後在2小時後修好<3 – 2016-07-08 19:30:37

266

如果您使用節點4.x或更高版本,那麼你需要重新安裝一飲而盡,青菜搭配:

npm uninstall --save-dev gulp-sass 
npm install --save-dev [email protected] 
+2

謝謝!我總是忘記如何解決這個問題,迄今爲止,這是最簡單和最快捷的解決方案。 – natdico 2015-10-16 15:45:58

+3

這解決了我的問題!是顯着更新節點的結果。 – ClickerMonkey 2015-11-17 21:24:58

+0

我沒有這樣做,只是手動將package.json文件中的版本號從'1.x.x'改爲'2.1.0'。 – 2015-11-27 08:07:25

1

解決了這個問題,這是一個節點版本的問題對我來說,嘗試使用NVM原路返回你的VERSI如:0.10.32。這對我有效。我正在運行4.2.2

3

我已經解決了這個問題,用指定的binding.node文件創建正確的目錄。您可以從GitHub

下載綁定

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

查找錯誤消息,其中它試圖找到綁定的路徑。在我的情況:

C:\用戶\的Martijn \文檔\ node_modules \一飲而盡,薩斯\ node_modules \節點薩斯\供應商\ Win32的x64-46

所以我創建此地圖Win32的x64-46並複製從GitHub上的結合在

4

兩個以上的答案爲我工作,以及增加組合:

sudo npm uninstall --save gulp-sass 
npm install --save [email protected] 
npm update 
npm rebuild node-sass 
0

無需須藤或重新安裝。這一直對我有用:

nvm use 0.12.2