當前位置: 首頁>>技術教程>>正文


在nodejs中使用node-sass時找不到libsass綁定

, , , ,

問題描述

我想在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複製了綁定。

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/10294.html,未經允許,請勿轉載。