[email protected] install: cannot rebuild on Node 4.1

Created on 21 Sep 2015  路  12Comments  路  Source: sass/node-sass

I updated my node today and could not run the my sass task..

Loading "sass.js" tasks...ERROR
>> Error: `libsass` bindings not found. Try reinstalling `node-sass`?
Warning: Task "sass" not found. Use --force to continue.

Aborted due to warnings.

I tried to rebuild and got:

 [email protected] install /swirl/console/node_modules/grunt-sass/node_modules/node-sass
> node scripts/install.js

Can not download file from https://raw.githubusercontent.com/sass/node-sass-binaries/v2.1.1/darwin-x64-node-4.1/binding.node

> [email protected] postinstall /swirl/console/node_modules/grunt-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/Jonnie/.node-gyp/4.1.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/Jonnie/.node-gyp/4.1.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/Jonnie/.node-gyp/4.1.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/Jonnie/.node-gyp/4.1.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/Jonnie/.node-gyp/4.1.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/Jonnie/.node-gyp/4.1.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/Jonnie/.node-gyp/4.1.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/Jonnie/.node-gyp/4.1.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/Jonnie/.node-gyp/4.1.0/src/node.h:283:29: note: 'FatalException' has been explicitly marked deprecated here
                inline void FatalException(const v8::TryCatch& try_catch) {
                            ^
/Users/Jonnie/.node-gyp/4.1.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/Jonnie/.node-gyp/4.1.0/src/node.h:283:29: note: 'FatalException' has been explicitly marked deprecated here
                inline void FatalException(const v8::TryCatch& try_catch) {
                            ^
/Users/Jonnie/.node-gyp/4.1.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/Jonnie/.node-gyp/4.1.0/src/node.h:283:29: note: 'FatalException' has been explicitly marked deprecated here
                inline void FatalException(const v8::TryCatch& try_catch) {
                            ^
/Users/Jonnie/.node-gyp/4.1.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/Jonnie/.node-gyp/4.1.0/src/node.h:42:
/Users/Jonnie/.node-gyp/4.1.0/deps/v8/include/v8.h:221:5: error: assigning to 'v8::Primitive *volatile' from incompatible type
      'v8::Value *'
    TYPE_CHECK(T, S);
    ^~~~~~~~~~~~~~~~
/Users/Jonnie/.node-gyp/4.1.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/Jonnie/.node-gyp/4.1.0/src/node.h:42:
/Users/Jonnie/.node-gyp/4.1.0/deps/v8/include/v8.h:221:5: error: assigning to 'v8::Boolean *volatile' from incompatible type
      'v8::Value *'
    TYPE_CHECK(T, S);
    ^~~~~~~~~~~~~~~~
/Users/Jonnie/.node-gyp/4.1.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/Jonnie/.node-gyp/4.1.0/src/node.h:42:
/Users/Jonnie/.node-gyp/4.1.0/deps/v8/include/v8.h:221:5: error: assigning to 'v8::Function *volatile' from incompatible type
      'v8::Value *'
    TYPE_CHECK(T, S);
    ^~~~~~~~~~~~~~~~
/Users/Jonnie/.node-gyp/4.1.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/Jonnie/.node-gyp/4.1.0/src/node.h:42:
/Users/Jonnie/.node-gyp/4.1.0/deps/v8/include/v8.h:221:5: error: assigning to 'v8::Object *volatile' from incompatible type
      'v8::Value *'
    TYPE_CHECK(T, S);
    ^~~~~~~~~~~~~~~~
/Users/Jonnie/.node-gyp/4.1.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 (/swirl/console/node_modules/grunt-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/Cellar/node/4.1.0/bin/node" "/swirl/console/node_modules/grunt-sass/node_modules/node-sass/node_modules/pangyp/bin/node-gyp" "rebuild"
gyp ERR! cwd /swirl/console/node_modules/grunt-sass/node_modules/node-sass
gyp ERR! node -v v4.1.0
gyp ERR! pangyp -v v2.3.2
gyp ERR! not ok 
Build failed
Invalid - By Design

Most helpful comment

@DenniLa2 , thank you sir, :+1: , it worked... :smile:

However had to do the following steps

  • Rename/delete folder node_modules in project folder
  • In file project_name/package.json rewrite
    "gulp-sass": "^2.0.0",
  • npm install gulp-sass
  • ionic setup sass

All 12 comments

Having the same issue.

Me too. Worked around by downgrading Node.

node-sass 2.1.1 will NOT work with node 4.0. Please install node-sass 3.3.3.

node-sass 2.1.1 will NOT work with node 4.0. Please install node-sass 3.3.3.
Saper, where can I find instruction about install node-sass 3.3.3?

node-sass 2.1.1 will NOT work with node 4.0. Please install node-sass 3.3.3.
Saper, where can I find instruction about install node-sass 3.3.3?

npm install node-sass

sorry, thank you!

recipe for ionic / gulp-sass users:

  1. Rename/delete folder node_modules in project folder
  2. In file project_name/package.json rewrite
"dependencies": {
    ...
    "gulp-sass": "^2.0.0",

3 . Run again
ionic setup sass
GL!

@DenniLa2 is there a bug report filed with them somewhere to bump this dependency? It might be useful to add a link here.

@DenniLa2 Was having the same issue, using ^2.0.0 worked for me, thank you very much sir.

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

@DenniLa2 , thank you sir, :+1: , it worked... :smile:

However had to do the following steps

  • Rename/delete folder node_modules in project folder
  • In file project_name/package.json rewrite
    "gulp-sass": "^2.0.0",
  • npm install gulp-sass
  • ionic setup sass

@sameera207 , thanks, this worked for me!!

Was this page helpful?
0 / 5 - 0 ratings