节点4.0和4.1的travis build中的node-gyp错误

当我运行Travis版本时,当它试图在节点版本4.0和4.1上运行node-gyp时,出现以下错误。 0.12和更低似乎没有这些问题,并build立良好。 我不确定这里是否有编译器问题?

> bcrypt@0.8.5 install /home/travis/build/me/api/node_modules/bcrypt > node-gyp rebuild make: Entering directory `/home/travis/build/me/api/node_modules/bcrypt/build' CXX(target) Release/obj.target/bcrypt_lib/src/blowfish.o CXX(target) Release/obj.target/bcrypt_lib/src/bcrypt.o CXX(target) Release/obj.target/bcrypt_lib/src/bcrypt_node.o In file included from /home/travis/.node-gyp/4.1.2/include/node/node.h:42:0, from ../node_modules/nan/nan.h:24, from ../src/bcrypt_node.cc:1: /home/travis/.node-gyp/4.1.2/include/node/v8.h:336:1: error: expected unqualified-id before 'using' /home/travis/.node-gyp/4.1.2/include/node/v8.h:469:1: error: expected unqualified-id before 'using' /home/travis/.node-gyp/4.1.2/include/node/v8.h:852:1: error: expected unqualified-id before 'using' In file included from ../node_modules/nan/nan.h:184:0, from ../src/bcrypt_node.cc:1: ../node_modules/nan/nan_maybe_43_inl.h:13:1: error: expected unqualified-id before 'using' ../node_modules/nan/nan_maybe_43_inl.h:16:1: error: expected unqualified-id before 'using' ../node_modules/nan/nan_maybe_43_inl.h:19:12: error: 'Maybe' does not name a type ../node_modules/nan/nan_maybe_43_inl.h:24:12: error: 'Maybe' does not name a type ../node_modules/nan/nan_maybe_43_inl.h:31:1: error: 'MaybeLocal' does In file included from ../node_modules/nan/nan_converters.h:59:0, from ../node_modules/nan/nan.h:189, from ../src/bcrypt_node.cc:1: ../node_modules/nan/nan_converters_43_inl.h:18:1: error: 'return_t' in 'struct Nan::imp::ToFactory<v8::Boolean>' does not name a type ../node_modules/nan/nan_converters_43_inl.h:19:1: error: 'return_t' in 'struct Nan::imp::ToFactory<v8::Number>' does not name a type ../node_modules/nan/nan_converters_43_inl.h:20:1: error: 'return_t' in 'struct Nan::imp::ToFactory<v8::String>' does not name a type ../node_modules/nan/nan_converters_43_inl.h:21:1: error: 'return_t' in 'struct Nan::imp::ToFactory<v8::Object>' does not name a type ../node_modules/nan/nan_converters_43_inl.h:22:1: error: 'return_t' in 'struct Nan::imp::ToFactory<v8::Integer>' does not name a type ../node_modules/nan/nan_converters_43_inl.h:23:1: error: 'return_t' in 'struct Nan::imp::ToFactory<v8::Uint32>' does not name a type ../node_modules/nan/nan_converters_43_inl.h:24:1: error: 'return_t' in 'struct Nan::imp::ToFactory<v8::Int32>' does not name a type ../node_modules/nan/nan_converters_43_inl.h:34:1: error: 'return_t' in 'struct Nan::imp::ToFactory<bool>' does not name a type ../node_modules/nan/nan_converters_43_inl.h:35:1: error: 'return_t' in 'struct Nan::imp::ToFactory<double>' does not name a type ../node_modules/nan/nan_converters_43_inl.h:36:1: error: 'return_t' in 'struct Nan::imp::ToFactory<long int>' does not name a type ../node_modules/nan/nan_converters_43_inl.h:37:1: error: 'return_t' in 'struct Nan::imp::ToFactory<unsigned int>' does not name a type ../node_modules/nan/nan_converters_43_inl.h:38:1: error: 'return_t' in 'struct Nan::imp::ToFactory<int>' does not name a type In file included from ../node_modules/nan/nan.h:190:0, from ../src/bcrypt_node.cc:1: ../node_modules/nan/nan_new.h: In function 'v8::Local<T> Nan::imp::To(v8::Local<v8::Integer>) [with T = v8::Integer]': ../node_modules/nan/nan_new.h:21:32: error: no matching function for call to 'To(v8::Local<v8::Integer>&)' ../node_modules/nan/nan_new.h:21:32: note: candidate is: ../node_modules/nan/nan_converters.h:53:38: note: template<class T> typename Nan::imp::ToFactory::return_t Nan::To(v8::Local<v8::Value>) ../node_modules/nan/nan_new.h: In function 'v8::Local<T> Nan::imp::To(v8::Local<v8::Integer>) [with T = v8::Int32]': ../node_modules/nan/nan_new.h:28:30: error: no matching function for call to 'To(v8::Local<v8::Integer>&)' ../node_modules/nan/nan_new.h:28:30: note: candidate is: ../node_modules/nan/nan_converters.h:53:38: note: template<class T> typename Nan::imp::ToFactory::return_t Nan::To(v8::Local<v8::Value>) ../node_modules/nan/nan_new.h: In function 'v8::Local<T> Nan::imp::To(v8::Local<v8::Integer>) [with T = v8::Uint32]': ../node_modules/nan/nan_new.h:35:31: error: no matching function for call to 'To(v8::Local<v8::Integer>&)' ../node_modules/nan/nan_new.h:35:31: note: candidate is: ../node_modules/nan/nan_converters.h:53:38: note: template<class T> typename Nan::imp::ToFactory::return_t Nan::To(v8::Local<v8::Value>) 

是的,我有一个类似的问题,从0.12.x迁移

尝试添加

 language: node_js node_js: - "4.2.4" env: - CXX=g++-4.8 addons: apt: sources: - ubuntu-toolchain-r-test packages: - g++-4.8 

到你的Travisconfiguration