Node-sass: Problem installing node-sass with Ionic framework

Created on 14 Sep 2015  Â·  13Comments  Â·  Source: sass/node-sass

Hey guys

I have a problem using sass with ionic-framwork (ionic setup sass), I get the following:

/Users/tom/Projekte/Roomies/node_modules/gulp-sass/node_modules/node-sass/lib/index.js:22
    throw new Error('`libsass` bindings not found. Try reinstalling `node-sass`?');
    ^

Error: `libsass` bindings not found. Try reinstalling `node-sass`?
    at getBinding (/Users/tom/Projekte/Roomies/node_modules/gulp-sass/node_modules/node-sass/lib/index.js:22:11)
    at Object.<anonymous> (/Users/tom/Projekte/Roomies/node_modules/gulp-sass/node_modules/node-sass/lib/index.js:188:23)
    at Module._compile (module.js:434:26)
    at Object.Module._extensions..js (module.js:452:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (/Users/tom/Projekte/Roomies/node_modules/gulp-sass/index.js:3:17)
    at Module._compile (module.js:434:26)

Error running gulp sass



Exception with  (CLI v1.6.4)

Your system information:

Cordova CLI: 5.3.1
Gulp version:  CLI version 3.9.0
Gulp local:   Local version 3.9.0
Ionic Version: 1.1.0
Ionic CLI Version: 1.6.4
Ionic App Lib Version: 0.3.8
ios-deploy version: Not installed
ios-sim version: 3.0.0
OS: Mac OS X Yosemite
Node Version: v4.0.0
Xcode version: Xcode 6.4 Build version 6E35b

Re-Installing node-sass ended up like this:

MB:motzne$ npm rebuild node-sass

> [email protected] install /Users/motzne/node_modules/gulp-sass/node_modules/node-sass
> node scripts/install.js


> [email protected] postinstall /Users/motzne/node_modules/gulp-sass/node_modules/node-sass
> node scripts/build.js

  CXX(target) Release/obj.target/binding/src/binding.o
In file included from ../src/binding.cpp:1:
../node_modules/nan/nan.h:324:27: error: redefinition of 'NanEnsureHandleOrPersistent'
  NAN_INLINE v8::Local<T> NanEnsureHandleOrPersistent(const v8::Local<T> &val) {
                          ^
../node_modules/nan/nan.h:319:17: note: previous definition is here
  v8::Handle<T> NanEnsureHandleOrPersistent(const v8::Handle<T> &val) {
                ^
../node_modules/nan/nan.h:344:27: error: redefinition of 'NanEnsureLocal'
  NAN_INLINE v8::Local<T> NanEnsureLocal(const v8::Handle<T> &val) {
                          ^
../node_modules/nan/nan.h:334:27: note: previous definition is here
  NAN_INLINE v8::Local<T> NanEnsureLocal(const v8::Local<T> &val) {
                          ^
../node_modules/nan/nan.h:757:13: error: no member named 'smalloc' in namespace 'node'
    , node::smalloc::FreeCallback callback
      ~~~~~~^
../node_modules/nan/nan.h:768:12: error: no matching function for call to 'New'
    return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);
           ^~~~~~~~~~~~~~~~~
/Users/tom/.node-gyp/4.0.0/src/node_buffer.h:31:40: note: candidate function not viable: no known conversion from 'uint32_t' (aka 'unsigned int') to 'enum encoding' for 3rd argument
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                       ^
/Users/tom/.node-gyp/4.0.0/src/node_buffer.h:43:40: note: candidate function not viable: 2nd argument ('const char *') would lose const qualifier
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                       ^
/Users/tom/.node-gyp/4.0.0/src/node_buffer.h:28:40: note: candidate function not viable: requires 2 arguments, but 3 were provided
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate, size_t length);
                                       ^
/Users/tom/.node-gyp/4.0.0/src/node_buffer.h:36:40: note: candidate function not viable: requires 5 arguments, but 3 were provided
NODE_EXTERN v8::MaybeLocal<v8::Object> New(v8::Isolate* isolate,
                                       ^
In file included from ../src/binding.cpp:1:
../node_modules/nan/nan.h:772:12: error: no viable conversion from 'v8::MaybeLocal<v8::Object>' to 'v8::Local<v8::Object>'
    return node::Buffer::New(v8::Isolate::GetCurrent(), size);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/tom/.node-gyp/4.0.0/deps/v8/include/v8.h:210:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'v8::MaybeLocal<v8::Object>' to
      'const v8::Local<v8::Object> &' for 1st argument
class Local {
      ^
/Users/tom/.node-gyp/4.0.0/deps/v8/include/v8.h:210:7: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'v8::MaybeLocal<v8::Object>' to
      'v8::Local<v8::Object> &&' for 1st argument
class Local {
      ^
/Users/tom/.node-gyp/4.0.0/deps/v8/include/v8.h:214:13: note: candidate template ignored: could not match 'Local' against 'MaybeLocal'
  V8_INLINE Local(Local<S> that)
            ^
/Users/tom/.node-gyp/4.0.0/deps/v8/include/v8.h:326:13: note: candidate template ignored: could not match 'S *' against 'v8::MaybeLocal<v8::Object>'
  V8_INLINE Local(S* that)
            ^
In file included from ../src/binding.cpp:1:
../node_modules/nan/nan.h:779:26: error: no member named 'Use' in namespace 'node::Buffer'
    return node::Buffer::Use(v8::Isolate::GetCurrent(), data, size);
           ~~~~~~~~~~~~~~^
../src/binding.cpp:70:11: warning: 'FatalException' is deprecated: Use FatalException(isolate, ...) [-Wdeprecated-declarations]
    node::FatalException(try_catch);
          ^
/Users/tom/.node-gyp/4.0.0/src/node.h:283:29: note: 'FatalException' has been explicitly marked deprecated here
                inline void FatalException(const v8::TryCatch& try_catch) {
                            ^
/Users/tom/.node-gyp/4.0.0/src/node.h:66:42: note: expanded from macro 'NODE_DEPRECATED'
    __attribute__((deprecated(message))) declarator
                                         ^
../src/binding.cpp:245:11: warning: 'FatalException' is deprecated: Use FatalException(isolate, ...) [-Wdeprecated-declarations]
    node::FatalException(try_catch);
          ^
/Users/tom/.node-gyp/4.0.0/src/node.h:283:29: note: 'FatalException' has been explicitly marked deprecated here
                inline void FatalException(const v8::TryCatch& try_catch) {
                            ^
/Users/tom/.node-gyp/4.0.0/src/node.h:66:42: note: expanded from macro 'NODE_DEPRECATED'
    __attribute__((deprecated(message))) declarator
                                         ^
../src/binding.cpp:365:11: warning: 'FatalException' is deprecated: Use FatalException(isolate, ...) [-Wdeprecated-declarations]
    node::FatalException(try_catch);
          ^
/Users/tom/.node-gyp/4.0.0/src/node.h:283:29: note: 'FatalException' has been explicitly marked deprecated here
                inline void FatalException(const v8::TryCatch& try_catch) {
                            ^
/Users/tom/.node-gyp/4.0.0/src/node.h:66:42: note: expanded from macro 'NODE_DEPRECATED'
    __attribute__((deprecated(message))) declarator
                                         ^
In file included from ../src/binding.cpp:1:
In file included from ../node_modules/nan/nan.h:24:
In file included from /Users/tom/.node-gyp/4.0.0/src/node.h:42:
/Users/tom/.node-gyp/4.0.0/deps/v8/include/v8.h:221:5: error: assigning to 'v8::Primitive *volatile' from incompatible type 'v8::Value *'
    TYPE_CHECK(T, S);
    ^~~~~~~~~~~~~~~~
/Users/tom/.node-gyp/4.0.0/deps/v8/include/v8.h:180:37: note: expanded from macro 'TYPE_CHECK'
    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \
                                    ^ ~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:501:12: note: in instantiation of function template specialization 'v8::Local<v8::Primitive>::Local<v8::Value>' requested here
    return NanEscapeScope(NanNew(v8::Undefined(v8::Isolate::GetCurrent())));
           ^
../node_modules/nan/nan.h:483:30: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(Nan::imp::NanEnsureLocal(val))
                             ^
In file included from ../src/binding.cpp:1:
In file included from ../node_modules/nan/nan.h:24:
In file included from /Users/tom/.node-gyp/4.0.0/src/node.h:42:
/Users/tom/.node-gyp/4.0.0/deps/v8/include/v8.h:221:5: error: assigning to 'v8::Boolean *volatile' from incompatible type 'v8::Value *'
    TYPE_CHECK(T, S);
    ^~~~~~~~~~~~~~~~
/Users/tom/.node-gyp/4.0.0/deps/v8/include/v8.h:180:37: note: expanded from macro 'TYPE_CHECK'
    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \
                                    ^ ~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:511:12: note: in instantiation of function template specialization 'v8::Local<v8::Boolean>::Local<v8::Value>' requested here
    return NanEscapeScope(NanNew(v8::True(v8::Isolate::GetCurrent())));
           ^
../node_modules/nan/nan.h:483:30: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(Nan::imp::NanEnsureLocal(val))
                             ^
In file included from ../src/binding.cpp:1:
In file included from ../node_modules/nan/nan.h:24:
In file included from /Users/tom/.node-gyp/4.0.0/src/node.h:42:
/Users/tom/.node-gyp/4.0.0/deps/v8/include/v8.h:221:5: error: assigning to 'v8::Function *volatile' from incompatible type 'v8::Value *'
    TYPE_CHECK(T, S);
    ^~~~~~~~~~~~~~~~
/Users/tom/.node-gyp/4.0.0/deps/v8/include/v8.h:180:37: note: expanded from macro 'TYPE_CHECK'
    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \
                                    ^ ~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:1645:12: note: in instantiation of function template specialization 'v8::Local<v8::Function>::Local<v8::Value>' requested here
    return NanEscapeScope(NanNew(handle)->Get(kCallbackIndex)
           ^
../node_modules/nan/nan.h:483:30: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(Nan::imp::NanEnsureLocal(val))
                             ^
In file included from ../src/binding.cpp:1:
In file included from ../node_modules/nan/nan.h:24:
In file included from /Users/tom/.node-gyp/4.0.0/src/node.h:42:
/Users/tom/.node-gyp/4.0.0/deps/v8/include/v8.h:221:5: error: assigning to 'v8::Object *volatile' from incompatible type 'v8::Value *'
    TYPE_CHECK(T, S);
    ^~~~~~~~~~~~~~~~
/Users/tom/.node-gyp/4.0.0/deps/v8/include/v8.h:180:37: note: expanded from macro 'TYPE_CHECK'
    *(static_cast<T* volatile*>(0)) = static_cast<S*>(0);      \
                                    ^ ~~~~~~~~~~~~~~~~~~
../node_modules/nan/nan.h:1776:12: note: in instantiation of function template specialization 'v8::Local<v8::Object>::Local<v8::Value>' requested here
    return NanEscapeScope(
           ^
../node_modules/nan/nan.h:483:30: note: expanded from macro 'NanEscapeScope'
# define NanEscapeScope(val) scope.Escape(Nan::imp::NanEnsureLocal(val))
                             ^
3 warnings and 10 errors generated.
make: *** [Release/obj.target/binding/src/binding.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/Users/motzne/node_modules/gulp-sass/node_modules/node-sass/node_modules/pangyp/lib/build.js:272:23)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Darwin 14.5.0
gyp ERR! command "/usr/local/bin/node" "/Users/motzne/node_modules/gulp-sass/node_modules/node-sass/node_modules/pangyp/bin/node-gyp" "rebuild"
gyp ERR! cwd /Users/motzne/node_modules/gulp-sass/node_modules/node-sass
gyp ERR! node -v v4.0.0
gyp ERR! pangyp -v v2.3.2
gyp ERR! not ok
Build failed

Any help?

Invalid - By Design

Most helpful comment

Hi everyone!

I've just fixed problems with libsass or node-sass with this command:

$ sudo rm -rf node_modules/ && cat package.json | sed -i.bak 's/"gulp-sass": "^X.X.X"/"gulp-sass": "^2.0.4"/g' package.json && npm install && ionic lib update

Where X is the version of gulp-sass in your package.json

Explanation:

Remove the old files in node_modules. I'm not sure is necessary to use 'sudo' (in my case, yes).

$ sudo rm -rf node_modules/

Search and replace inside package.json updating gulp-sass version to ^2.0.4. It also creates a backup (package.json.bak),

$ cat package.json | sed -i.bak 's/"gulp-sass": "^X.X.X"/"gulp-sass": "^2.0.4"/g' package.json

Reinstall dependencies

$ npm install

Update the ionic lib in the project

ionic lib update

If you have any further problems be sure I try can help you...

Bye

All 13 comments

I'm having the same problem

Same problem here, going back to Node v0.12.7 "fixed" the problem for now, so it probably has to do something with the Node v4 update?

See #1141. It's trying to force [email protected] which is old and supports only node up to version 0.12. Try using npm install node-sass to get the latest version, if it needs to run node 4.

It worked.. thanks guys, this took me a while.. :(

updated to latest everything, works ok now

I've PR'd ionic to fix their broken dependency https://github.com/driftyco/ionic/pull/4449

Hi everyone!

I've just fixed problems with libsass or node-sass with this command:

$ sudo rm -rf node_modules/ && cat package.json | sed -i.bak 's/"gulp-sass": "^X.X.X"/"gulp-sass": "^2.0.4"/g' package.json && npm install && ionic lib update

Where X is the version of gulp-sass in your package.json

Explanation:

Remove the old files in node_modules. I'm not sure is necessary to use 'sudo' (in my case, yes).

$ sudo rm -rf node_modules/

Search and replace inside package.json updating gulp-sass version to ^2.0.4. It also creates a backup (package.json.bak),

$ cat package.json | sed -i.bak 's/"gulp-sass": "^X.X.X"/"gulp-sass": "^2.0.4"/g' package.json

Reinstall dependencies

$ npm install

Update the ionic lib in the project

ionic lib update

If you have any further problems be sure I try can help you...

Bye

@gabfiocchi . Thanks man! it worked for me.

@gabfiocchi YOU ROCK! Thanks!!

@gabfiocchi omg thanks m8 !!

Here is some advice for anyone else who encounters this issue and tried the above without result. (although I do appreciate the effort! ;-) ) It seems like there are different causes that lead to this problem and I found out the hard way that google really was not my friend on this one as it took me more time reading and searching than to pinpoint the issue myself and fix it.

So before you start installing a bunch of packages you may not need, downgrade node or follow any other time consuming advice you can find. Here is the not so magic solution you may have been waiting for. Upgrade ionic, create a blank project, run the ionic setup sass command. Does it work? Great, If not than your search is not over yet, but you can at least narrow it down to your environment. But if it does work, (I expect it will for most) than just compare your packages and stuff to the ones in your own project. My problem was that some third party starter kit I purchased was using an older version of gulp-sass. I just used my blank project as an example to update my configs and voila. Works like a charm. :-)

Perhaps it is best to assume that third party packages on the ionic marketplace are poorly maintained to prevent surprises.

[ERROR] Unable to find command: setup sass
I got this error message while run ionic setup sass. How can I setup ionic setup sass ...

Please open an issue with ionic.

On 8 Nov. 2017 6:03 pm, "Anbarasan" notifications@github.com wrote:

[ERROR] Unable to find command: setup sass
I got this error message while run ionic setup sass. How can I setup ionic
setup sass ...

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/sass/node-sass/issues/1142#issuecomment-342728766, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAjZWB4wx_mEQLukiYpLv1VLriyCN45kks5s0VJJgaJpZM4F8sU9
.

Was this page helpful?
0 / 5 - 0 ratings