I am walking through the Gatsby starter to deploy on Heroku. After following all of the setup steps, I received the output below from Heroku when I ran git push heroku master
.
I tried installing nan separately in case it was a version issue, but didn't have any luck there.
Enumerating objects: 305, done.
Counting objects: 100% (305/305), done.
Delta compression using up to 8 threads
Compressing objects: 100% (158/158), done.
Writing objects: 100% (305/305), 652.79 KiB | 217.60 MiB/s, done.
Total 305 (delta 140), reused 305 (delta 140)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Node.js app detected
remote:
remote: -----> Creating runtime environment
remote:
remote: NPM_CONFIG_LOGLEVEL=error
remote: NODE_ENV=production
remote: NODE_MODULES_CACHE=true
remote: NODE_VERBOSE=false
remote:
remote: -----> Installing binaries
remote: engines.node (package.json): unspecified
remote: engines.npm (package.json): unspecified (use default)
remote:
remote: Resolving node version 12.x...
remote: Downloading and installing node 12.13.1...
remote: Using default npm version: 6.12.1
remote:
remote: -----> Installing dependencies
remote: Installing node modules (package.json + package-lock)
remote:
remote: > [email protected] install /tmp/build_37fd982bcb136d9ca481ab7e0b36cf53/node_modules/sharp
remote: > (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
remote:
remote: info sharp Downloading https://github.com/lovell/sharp-libvips/releases/download/v8.6.1/libvips-8.6.1-linux-x64.tar.gz
remote: make: Entering directory '/tmp/build_37fd982bcb136d9ca481ab7e0b36cf53/node_modules/sharp/build'
remote: TOUCH Release/obj.target/libvips-cpp.stamp
remote: CXX(target) Release/obj.target/sharp/src/common.o
remote: In file included from ../../nan/nan_converters.h:67:0,
remote: from ../../nan/nan.h:202,
remote: from ../src/common.cc:24:
remote: ../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ToFactoryBase<v8::Boolean>::return_t Nan::imp::ToFactory<v8::Boolean>::convert(v8::Local<v8::Value>)’:
remote: ../../nan/nan_converters_43_inl.h:18:51: warning: ‘v8::MaybeLocal<v8::Boolean> v8::Value::ToBoolean(v8::Local<v8::Context>) const’ is deprecated: ToBoolean can never throw. Use Local version. [-Wdeprecated-declarations]
remote: val->To ## TYPE(isolate->GetCurrentContext()) \
remote: ^
remote: ../../nan/nan_converters_43_inl.h:22:1: note: in expansion of macro ‘X’
remote: X(Boolean)
remote: ^
remote: In file included from /app/.cache/node-gyp/12.13.1/include/node/v8-internal.h:14:0,
remote: from /app/.cache/node-gyp/12.13.1/include/node/v8.h:25,
remote: from /app/.cache/node-gyp/12.13.1/include/node/node.h:63,
remote: from ../src/common.cc:22:
remote: /app/.cache/node-gyp/12.13.1/include/node/v8.h:2568:59: note: declared here
remote: V8_WARN_UNUSED_RESULT MaybeLocal<Boolean> ToBoolean(
remote: ^
remote: /app/.cache/node-gyp/12.13.1/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
remote: declarator __attribute__((deprecated(message)))
remote: ^~~~~~~~~~
remote: In file included from ../../nan/nan_converters.h:67:0,
remote: from ../../nan/nan.h:202,
remote: from ../src/common.cc:24:
remote: ../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ValueFactoryBase<bool>::return_t Nan::imp::ToFactory<bool>::convert(v8::Local<v8::Value>)’:
remote: ../../nan/nan_converters_43_inl.h:37:57: warning: ‘v8::Maybe<bool> v8::Value::BooleanValue(v8::Local<v8::Context>) const’ is deprecated: BooleanValue can never throw. Use Isolate version. [-Wdeprecated-declarations]
remote: return val->NAME ## Value(isolate->GetCurrentContext()); \
remote: ^
remote: ../../nan/nan_converters_43_inl.h:40:1: note: in expansion of macro ‘X’
remote: X(bool, Boolean)
remote: ^
remote: In file included from /app/.cache/node-gyp/12.13.1/include/node/v8-internal.h:14:0,
remote: from /app/.cache/node-gyp/12.13.1/include/node/v8.h:25,
remote: from /app/.cache/node-gyp/12.13.1/include/node/node.h:63,
remote: from ../src/common.cc:22:
remote: /app/.cache/node-gyp/12.13.1/include/node/v8.h:2606:51: note: declared here
remote: V8_WARN_UNUSED_RESULT Maybe<bool> BooleanValue(
remote: ^
remote: /app/.cache/node-gyp/12.13.1/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
remote: declarator __attribute__((deprecated(message)))
remote: ^~~~~~~~~~
remote: In file included from ../../nan/nan_new.h:189:0,
remote: from ../../nan/nan.h:203,
remote: from ../src/common.cc:24:
remote: ../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBase<v8::Function>::return_t Nan::imp::Factory<v8::Function>::New(Nan::FunctionCallback, v8::Local<v8::Value>)’:
remote: ../../nan/nan_implementation_12_inl.h:105:32: error: no matching function for call to ‘v8::Function::New(v8::Isolate*&, void (&)(const v8::FunctionCallbackInfo<v8::Value>&), v8::Local<v8::Object>&)’
remote: , obj));
remote: ^
remote: In file included from /app/.cache/node-gyp/12.13.1/include/node/node.h:63:0,
remote: from ../src/common.cc:22:
remote: /app/.cache/node-gyp/12.13.1/include/node/v8.h:4170:31: note: candidate: static v8::MaybeLocal<v8::Function> v8::Function::New(v8::Local<v8::Context>, v8::FunctionCallback, v8::Local<v8::Value>, int, v8::ConstructorBehavior, v8::SideEffectType)
remote: static MaybeLocal<Function> New(
remote: ^~~
remote: /app/.cache/node-gyp/12.13.1/include/node/v8.h:4170:31: note: no known conversion for argument 1 from ‘v8::Isolate*’ to ‘v8::Local<v8::Context>’
remote: In file included from ../../nan/nan_new.h:189:0,
remote: from ../../nan/nan.h:203,
remote: from ../src/common.cc:24:
remote: ../../nan/nan_implementation_12_inl.h: In static member function ‘static Nan::imp::FactoryBase<v8::StringObject>::return_t Nan::imp::Factory<v8::StringObject>::New(v8::Local<v8::String>)’
remote: ../../nan/nan_implementation_12_inl.h:337:37: error: no matching function for call to ‘v8::StringObject::New(v8::Local<v8::String>&)’
remote: return v8::StringObject::New(value).As<v8::StringObject>();
remote: ^
remote: In file included from /app/.cache/node-gyp/12.13.1/include/node/node.h:63:0,
remote: from ../src/common.cc:22:
remote: /app/.cache/node-gyp/12.13.1/include/node/v8.h:5426:23: note: candidate: static v8::Local<v8::Value> v8::StringObject::New(v8::Isolate*, v8::Local<v8::String>)
remote: static Local<Value> New(Isolate* isolate, Local<String> value);
remote: ^~~
remote: /app/.cache/node-gyp/12.13.1/include/node/v8.h:5426:23: note: candidate expects 2 arguments, 1 provided
remote: In file included from ../../nan/nan_new.h:189:0,
remote: from ../../nan/nan.h:203,
remote: from ../src/common.cc:24:
remote: ../../nan/nan_implementation_12_inl.h:337:58: error: expected primary-expression before ‘>’ token
remote: return v8::StringObject::New(value).As<v8::StringObject>();
remote: ^
remote: ../../nan/nan_implementation_12_inl.h:337:60: error: expected primary-expression before ‘)’ token
remote: return v8::StringObject::New(value).As<v8::StringObject>();
remote: ^
remote: In file included from ../src/common.cc:24:0:
remote: ../../nan/nan.h: In constructor ‘Nan::Utf8String::Utf8String(v8::Local<v8::Value>)’:
remote: ../../nan/nan.h:1034:53: error: no matching function for call to ‘v8::Value::ToString()’
remote: v8::Local<v8::String> string = from->ToString();
remote: ^
remote: In file included from /app/.cache/node-gyp/12.13.1/include/node/node.h:63:0,
remote: from ../src/common.cc:22:
remote: /app/.cache/node-gyp/12.13.1/include/node/v8.h:2572:44: note: candidate: v8::MaybeLocal<v8::String> v8::Value::ToString(v8::Local<v8::Context>) const
remote: V8_WARN_UNUSED_RESULT MaybeLocal<String> ToString(
remote: ^~~~~~~~
remote: /app/.cache/node-gyp/12.13.1/include/node/v8.h:2572:44: note: candidate expects 1 argument, 0 provided
remote: In file included from /app/.cache/node-gyp/12.13.1/include/node/v8-internal.h:14:0,
remote: from /app/.cache/node-gyp/12.13.1/include/node/v8.h:25,
remote: from /app/.cache/node-gyp/12.13.1/include/node/node.h:63,
remote: from ../src/common.cc:22:
remote: /app/.cache/node-gyp/12.13.1/include/node/v8.h:2588:31: note: candidate: v8::Local<v8::String> v8::Value::ToString(v8::Isolate*) const
remote: Local<String> ToString(Isolate* isolate) const);
remote: ^
remote: /app/.cache/node-gyp/12.13.1/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
remote: declarator __attribute__((deprecated(message)))
remote: ^~~~~~~~~~
remote: /app/.cache/node-gyp/12.13.1/include/node/v8.h:2588:31: note: candidate expects 1 argument, 0 provided
remote: Local<String> ToString(Isolate* isolate) const);
remote: ^
remote: /app/.cache/node-gyp/12.13.1/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
remote: declarator __attribute__((deprecated(message)))
remote: ^~~~~~~~~~
remote: In file included from ../src/common.cc:24:0:
remote: ../../nan/nan.h:1044:74: error: no matching function for call to ‘v8::String::WriteUtf8(char*&, int, int, const int&)’
remote: length_ = string->WriteUtf8(str_, static_cast<int>(len), 0, flags);
remote: ^
remote: In file included from /app/.cache/node-gyp/12.13.1/include/node/node.h:63:0,
remote: from ../src/common.cc:22:
remote: /app/.cache/node-gyp/12.13.1/include/node/v8.h:2782:7: note: candidate: int v8::String::WriteUtf8(v8::Isolate*, char*, int, int*, int) const
remote: int WriteUtf8(Isolate* isolate, char* buffer, int length = -1,
remote: ^~~~~~~~~
remote: /app/.cache/node-gyp/12.13.1/include/node/v8.h:2782:7: note: no known conversion for argument 1 from ‘char*’ to ‘v8::Isolate*’
remote: In file included from ../src/common.cc:24:0:
remote: ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(const char*, const v8::Local<v8::Value>&)’:
remote: ../../nan/nan.h:1818:64: warning: ‘bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
remote: New(persistentHandle)->Set(New(key).ToLocalChecked(), value);
remote: ^
remote: In file included from /app/.cache/node-gyp/12.13.1/include/node/v8-internal.h:14:0,
remote: from /app/.cache/node-gyp/12.13.1/include/node/v8.h:25,
remote: from /app/.cache/node-gyp/12.13.1/include/node/node.h:63,
remote: from ../src/common.cc:22:
remote: /app/.cache/node-gyp/12.13.1/include/node/v8.h:3403:22: note: declared here
remote: bool Set(Local<Value> key, Local<Value> value));
remote: ^
remote: /app/.cache/node-gyp/12.13.1/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
remote: declarator __attribute__((deprecated(message)))
remote: ^~~~~~~~~~
remote: In file included from ../src/common.cc:24:0:
remote: ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(const v8::Local<v8::String>&, const v8::Local<v8::Value>&)’:
remote: ../../nan/nan.h:1824:42: warning: ‘bool v8::Object::Set(v8::Local<v8::Value>, v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
remote: New(persistentHandle)->Set(key, value);
remote: ^
remote: In file included from /app/.cache/node-gyp/12.13.1/include/node/v8-internal.h:14:0,
remote: from /app/.cache/node-gyp/12.13.1/include/node/v8.h:25,
remote: from /app/.cache/node-gyp/12.13.1/include/node/node.h:63,
remote: from ../src/common.cc:22:
remote: /app/.cache/node-gyp/12.13.1/include/node/v8.h:3403:22: note: declared here
remote: bool Set(Local<Value> key, Local<Value> value));
remote: ^
remote: /app/.cache/node-gyp/12.13.1/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
remote: declarator __attribute__((deprecated(message)))
remote: ^~~~~~~~~~
remote: In file included from ../src/common.cc:24:0:
remote: ../../nan/nan.h: In member function ‘void Nan::AsyncWorker::SaveToPersistent(uint32_t, const v8::Local<v8::Value>&)’:
remote: ../../nan/nan.h:1830:44: warning: ‘bool v8::Object::Set(uint32_t, v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
remote: New(persistentHandle)->Set(index, value);
remote: ^
remote: In file included from /app/.cache/node-gyp/12.13.1/include/node/v8-internal.h:14:0,
remote: from /app/.cache/node-gyp/12.13.1/include/node/v8.h:25,
remote: from /app/.cache/node-gyp/12.13.1/include/node/node.h:63,
remote: from ../src/common.cc:22:
remote: /app/.cache/node-gyp/12.13.1/include/node/v8.h:3412:22: note: declared here
remote: bool Set(uint32_t index, Local<Value> value));
remote: ^
remote: /app/.cache/node-gyp/12.13.1/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
remote: declarator __attribute__((deprecated(message)))
remote: ^~~~~~~~~~
remote: In file included from ../src/common.cc:24:0:
remote: ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(const char*) const’:
remote: ../../nan/nan.h:1836:61: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
remote: New(persistentHandle)->Get(New(key).ToLocalChecked()));
remote: ^
remote: In file included from /app/.cache/node-gyp/12.13.1/include/node/v8-internal.h:14:0,
remote: from /app/.cache/node-gyp/12.13.1/include/node/v8.h:25,
remote: from /app/.cache/node-gyp/12.13.1/include/node/node.h:63,
remote: from ../src/common.cc:22:
remote: /app/.cache/node-gyp/12.13.1/include/node/v8.h:3457:51: note: declared here
remote: V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
remote: ^
remote: /app/.cache/node-gyp/12.13.1/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
remote: declarator __attribute__((deprecated(message)))
remote: ^~~~~~~~~~
remote: In file included from ../src/common.cc:24:0:
remote: ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(const v8::Local<v8::String>&) const’:
remote: ../../nan/nan.h:1842:55: warning: ‘v8::Local<v8::Value> v8::Object::Get(v8::Local<v8::Value>)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
remote: return scope.Escape(New(persistentHandle)->Get(key));
remote: ^
remote: In file included from /app/.cache/node-gyp/12.13.1/include/node/v8-internal.h:14:0,
remote: from /app/.cache/node-gyp/12.13.1/include/node/v8.h:25,
remote: from /app/.cache/node-gyp/12.13.1/include/node/node.h:63,
remote: from ../src/common.cc:22:
remote: /app/.cache/node-gyp/12.13.1/include/node/v8.h:3457:51: note: declared here
remote: V8_DEPRECATED("Use maybe version", Local<Value> Get(Local<Value> key));
remote: ^
remote: /app/.cache/node-gyp/12.13.1/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
remote: declarator __attribute__((deprecated(message)))
remote: ^~~~~~~~~~
remote: In file included from ../src/common.cc:24:0:
remote: ../../nan/nan.h: In member function ‘v8::Local<v8::Value> Nan::AsyncWorker::GetFromPersistent(uint32_t) const’:
remote: ../../nan/nan.h:1847:57: warning: ‘v8::Local<v8::Value> v8::Object::Get(uint32_t)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
remote: return scope.Escape(New(persistentHandle)->Get(index));
remote: ^
remote: In file included from /app/.cache/node-gyp/12.13.1/include/node/v8-internal.h:14:0,
remote: from /app/.cache/node-gyp/12.13.1/include/node/v8.h:25,
remote: from /app/.cache/node-gyp/12.13.1/include/node/node.h:63,
remote: from ../src/common.cc:22:
remote: /app/.cache/node-gyp/12.13.1/include/node/v8.h:3461:51: note: declared here
remote: V8_DEPRECATED("Use maybe version", Local<Value> Get(uint32_t index));
remote: ^
remote: /app/.cache/node-gyp/12.13.1/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
remote: declarator __attribute__((deprecated(message)))
remote: ^~~~~~~~~~
remote: In file included from /usr/include/c++/7/cassert:44:0,
remote: from /app/.cache/node-gyp/12.13.1/include/node/node_object_wrap.h:26,
remote: from ../../nan/nan.h:53,
remote: from ../src/common.cc:24:
remote: ../../nan/nan_object_wrap.h: In destructor ‘virtual Nan::ObjectWrap::~ObjectWrap()’:
remote: ../../nan/nan_object_wrap.h:24:25: error: ‘class Nan::Persistent<v8::Object>’ has no member named ‘IsNearDeath’
remote: assert(persistent().IsNearDeath());
remote: ^
remote: In file included from ../../nan/nan.h:2657:0,
remote: from ../src/common.cc:24:
remote: ../../nan/nan_object_wrap.h: In member function ‘void Nan::ObjectWrap::MakeWeak()’:
remote: ../../nan/nan_object_wrap.h:67:34: warning: ‘void v8::PersistentBase<T>::MarkIndependent() [with T = v8::Object]’ is deprecated: Weak objects are always considered independent. Use TracedGlobal when trying to use EmbedderHeapTracer. Use a strong handle when trying to keep an object alive. [-Wdeprecated-declarations]
remote: persistent().MarkIndependent();
remote: ^
remote: In file included from /app/.cache/node-gyp/12.13.1/include/node/v8-internal.h:14:0,
remote: from /app/.cache/node-gyp/12.13.1/include/node/v8.h:25,
remote: from /app/.cache/node-gyp/12.13.1/include/node/node.h:63,
remote: from ../src/common.cc:22:
remote: /app/.cache/node-gyp/12.13.1/include/node/v8.h:567:22: note: declared here
remote: V8_INLINE void MarkIndependent());
remote: ^
remote: /app/.cache/node-gyp/12.13.1/include/node/v8config.h:311:3: note: in definition of macro ‘V8_DEPRECATED’
remote: declarator __attribute__((deprecated(message)))
remote: ^~~~~~~~~~
remote: In file included from /usr/include/c++/7/cassert:44:0,
remote: from /app/.cache/node-gyp/12.13.1/include/node/node_object_wrap.h:26,
remote: from ../../nan/nan.h:53,
remote: from ../src/common.cc:24:
remote: ../../nan/nan_object_wrap.h: In static member function ‘static void Nan::ObjectWrap::WeakCallback(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’:
remote: ../../nan/nan_object_wrap.h:124:26: error: ‘class Nan::Persistent<v8::Object>’ has no member named ‘IsNearDeath’
remote: assert(wrap->handle_.IsNearDeath());
remote: ^
remote: In file included from ../src/common.cc:27:0:
remote: ../src/common.h: At global scope:
remote: ../src/common.h:82:20: error: ‘Handle’ is not a member of ‘v8’
remote: bool HasAttr(v8::Handle<v8::Object> obj, std::string attr);
remote: ^~~~~~
remote: ../src/common.h:82:37: error: expected primary-expression before ‘>’ token
remote: bool HasAttr(v8::Handle<v8::Object> obj, std::string attr);
remote: ^
remote: ../src/common.h:82:39: error: ‘obj’ was not declared in this scope
remote: bool HasAttr(v8::Handle<v8::Object> obj, std::string attr);
remote: ^~~
remote: ../src/common.h:82:56: error: expected primary-expression before ‘attr’
remote: bool HasAttr(v8::Handle<v8::Object> obj, std::string attr);
remote: ^~~~
remote: ../src/common.h:82:60: error: expression list treated as compound expression in initializer [-fpermissive]
remote: bool HasAttr(v8::Handle<v8::Object> obj, std::string attr);
remote: ^
remote: ../src/common.h:83:29: error: ‘Handle’ is not a member of ‘v8’
remote: std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr);
remote: ^~~~~~
remote: ../src/common.h:83:46: error: expected primary-expression before ‘>’ token
remote: std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr);
remote: ^
remote: ../src/common.h:83:48: error: ‘obj’ was not declared in this scope
remote: std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr);
remote: ^~~
remote: ../src/common.h:83:65: error: expected primary-expression before ‘attr’
remote: std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr);
remote: ^~~~
remote: ../src/common.h:84:48: error: ‘Handle’ is not a member of ‘v8’
remote: template<typename T> v8::Local<T> AttrAs(v8::Handle<v8::Object> obj, std::string attr) {
remote: ^~~~~~
remote: ../src/common.h:84:65: error: expected primary-expression before ‘>’ token
remote: template<typename T> v8::Local<T> AttrAs(v8::Handle<v8::Object> obj, std::string attr) {
remote: ^
remote: ../src/common.h:84:67: error: ‘obj’ was not declared in this scope
remote: template<typename T> v8::Local<T> AttrAs(v8::Handle<v8::Object> obj, std::string attr) {
remote: ^~~
remote: ../src/common.h:84:84: error: expected primary-expression before ‘attr’
remote: template<typename T> v8::Local<T> AttrAs(v8::Handle<v8::Object> obj, std::string attr) {
remote: ^~~~
remote: ../src/common.h:84:37: warning: variable templates only available with -std=c++14 or -std=gnu++14
remote: template<typename T> v8::Local<T> AttrAs(v8::Handle<v8::Object> obj, std::string attr) {
remote: ^~~~~~
remote: ../src/common.h:84:90: error: expected ‘;’ before ‘{’ token
remote: template<typename T> v8::Local<T> AttrAs(v8::Handle<v8::Object> obj, std::string attr) {
remote: ^
remote: ../src/common.h:87:37: error: ‘Handle’ is not a member of ‘v8’
remote: template<typename T> T AttrTo(v8::Handle<v8::Object> obj, std::string attr) {
remote: ^~~~~~
remote: ../src/common.h:87:54: error: expected primary-expression before ‘>’ token
remote: template<typename T> T AttrTo(v8::Handle<v8::Object> obj, std::string attr) {
remote: ^
remote: ../src/common.h:87:56: error: ‘obj’ was not declared in this scope
remote: template<typename T> T AttrTo(v8::Handle<v8::Object> obj, std::string attr) {
remote: ^~~
remote: ../src/common.h:87:73: error: expected primary-expression before ‘attr’
remote: template<typename T> T AttrTo(v8::Handle<v8::Object> obj, std::string attr) {
remote: ^~~~
remote: ../src/common.h:87:26: warning: variable templates only available with -std=c++14 or -std=gnu++14
remote: template<typename T> T AttrTo(v8::Handle<v8::Object> obj, std::string attr) {
remote: ^~~~~~
remote: ../src/common.h:87:79: error: expected ‘;’ before ‘{’ token
remote: template<typename T> T AttrTo(v8::Handle<v8::Object> obj, std::string attr) {
remote: ^
remote: ../src/common.h:90:37: error: ‘Handle’ is not a member of ‘v8’
remote: template<typename T> T AttrTo(v8::Handle<v8::Object> obj, int attr) {
remote: ^~~~~~
remote: ../src/common.h:90:54: error: expected primary-expression before ‘>’ token
remote: template<typename T> T AttrTo(v8::Handle<v8::Object> obj, int attr) {
remote: ^
remote: ../src/common.h:90:56: error: ‘obj’ was not declared in this scope
remote: template<typename T> T AttrTo(v8::Handle<v8::Object> obj, int attr) {
remote: ^~~
remote: ../src/common.h:90:61: error: expected primary-expression before ‘int’
remote: template<typename T> T AttrTo(v8::Handle<v8::Object> obj, int attr) {
remote: ^~~
remote: ../src/common.h:87:26: warning: variable templates only available with -std=c++14 or -std=gnu++14
remote: template<typename T> T AttrTo(v8::Handle<v8::Object> obj, std::string attr) {
remote: ^~~~~~
remote: ../src/common.h:90:71: error: expected ‘;’ before ‘{’ token
remote: template<typename T> T AttrTo(v8::Handle<v8::Object> obj, int attr) {
remote: ^
remote: ../src/common.h:96:9: error: ‘Handle’ is not a member of ‘v8’
remote: v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist);
remote: ^~~~~~
remote: ../src/common.h:96:26: error: expected primary-expression before ‘>’ token
remote: v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist);
remote: ^
remote: ../src/common.h:96:28: error: ‘input’ was not declared in this scope
remote: v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist);
remote: ^~~~~
remote: ../src/common.h:96:28: note: suggested alternative: ‘ino_t’
remote: v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist);
remote: ^~~~~
remote: ino_t
remote: ../src/common.h:96:70: error: expected primary-expression before ‘&’ token
remote: v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist);
remote: ^
remote: ../src/common.h:96:71: error: ‘buffersToPersist’ was not declared in this scope
remote: v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist);
remote: ^~~~~~~~~~~~~~~~
remote: ../src/common.h:96:87: error: expression list treated as compound expression in initializer [-fpermissive]
remote: v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist);
remote: ^
remote: ../src/common.cc:34:20: error: redefinition of ‘bool sharp::HasAttr’
remote: bool HasAttr(v8::Handle<v8::Object> obj, std::string attr) {
remote: ^~~~~~
remote: In file included from ../src/common.cc:27:0:
remote: ../src/common.h:82:8: note: ‘bool sharp::HasAttr’ previously defined here
remote: bool HasAttr(v8::Handle<v8::Object> obj, std::string attr);
remote: ^~~~~~~
remote: ../src/common.cc:34:20: error: ‘Handle’ is not a member of ‘v8’
remote: bool HasAttr(v8::Handle<v8::Object> obj, std::string attr) {
remote: ^~~~~~
remote: ../src/common.cc:34:37: error: expected primary-expression before ‘>’ token
remote: bool HasAttr(v8::Handle<v8::Object> obj, std::string attr) {
remote: ^
remote: ../src/common.cc:34:39: error: ‘obj’ was not declared in this scope
remote: bool HasAttr(v8::Handle<v8::Object> obj, std::string attr) {
remote: ^~~
remote: ../src/common.cc:34:56: error: expected primary-expression before ‘attr’
remote: bool HasAttr(v8::Handle<v8::Object> obj, std::string attr) {
remote: ^~~~
remote: ../src/common.cc:37:29: error: redefinition of ‘std::string sharp::AttrAsStr’
remote: std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr) {
remote: ^~~~~~
remote: In file included from ../src/common.cc:27:0:
remote: ../src/common.h:83:15: note: ‘std::string sharp::AttrAsStr’ previously declared here
remote: std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr);
remote: ^~~~~~~~~
remote: ../src/common.cc:37:29: error: ‘Handle’ is not a member of ‘v8’
remote: std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr) {
remote: ^~~~~~
remote: ../src/common.cc:37:46: error: expected primary-expression before ‘>’ token
remote: std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr) {
remote: ^
remote: ../src/common.cc:37:48: error: ‘obj’ was not declared in this scope
remote: std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr) {
remote: ^~~
remote: ../src/common.cc:37:65: error: expected primary-expression before ‘attr’
remote: std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr) {
remote: ^~~~
remote: ../src/common.cc:43:9: error: redefinition of ‘sharp::InputDescriptor* sharp::CreateInputDescriptor’
remote: v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist
remote: ^~~~~~
remote: In file included from ../src/common.cc:27:0:
remote: ../src/common.h:95:20: note: ‘sharp::InputDescriptor* sharp::CreateInputDescriptor’ previously defined here
remote: InputDescriptor* CreateInputDescriptor(
remote: ^~~~~~~~~~~~~~~~~~~~~
remote: ../src/common.cc:43:9: error: ‘Handle’ is not a member of ‘v8’
remote: v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist
remote: ^~~~~~
remote: ../src/common.cc:43:26: error: expected primary-expression before ‘>’ token
remote: v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist
remote: ^
remote: ../src/common.cc:43:28: error: ‘input’ was not declared in this scope
remote: v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist
remote: ^~~~~
remote: ../src/common.cc:43:28: note: suggested alternative: ‘ino_t’
remote: v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist
remote: ^~~~~
remote: ino_t
remote: ../src/common.cc:43:70: error: expected primary-expression before ‘&’ token
remote: v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist
remote: ^
remote: ../src/common.cc:43:71: error: ‘buffersToPersist’ was not declared in this scope
remote: v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist
remote: ^~~~~~~~~~~~~~~~
remote: sharp.target.mk:134: recipe for target 'Release/obj.target/sharp/src/common.o' failed
remote: make: *** [Release/obj.target/sharp/src/common.o] Error 1
remote: make: Leaving directory '/tmp/build_37fd982bcb136d9ca481ab7e0b36cf53/node_modules/sharp/build'
remote: gyp ERR! build error
remote: gyp ERR! stack Error: `make` failed with exit code: 2
remote: gyp ERR! stack at ChildProcess.onExit (/tmp/build_37fd982bcb136d9ca481ab7e0b36cf53/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
remote: gyp ERR! stack at ChildProcess.emit (events.js:210:5)
remote: gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
remote: gyp ERR! System Linux 4.4.0-1048-aws
remote: gyp ERR! command "/tmp/build_37fd982bcb136d9ca481ab7e0b36cf53/.heroku/node/bin/node" "/tmp/build_37fd982bcb136d9ca481ab7e0b36cf53/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
remote: gyp ERR! cwd /tmp/build_37fd982bcb136d9ca481ab7e0b36cf53/node_modules/sharp
remote: gyp ERR! node -v v12.13.1
remote: gyp ERR! node-gyp -v v5.0.5
remote: gyp ERR! not ok
remote: npm ERR! code ELIFECYCLE
remote: npm ERR! errno 1
remote: npm ERR! [email protected] install: `(node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)`
remote: npm ERR! Exit status 1
remote: npm ERR!
remote: npm ERR! Failed at the [email protected] install script.
remote: npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
remote:
remote: npm ERR! A complete log of this run can be found in:
remote: npm ERR! /tmp/npmcache.XmXCU/_logs/2019-11-26T21_05_27_486Z-debug.log
remote:
remote: -----> Build failed
remote:
remote: We're sorry this build is failing! You can troubleshoot common issues here:
remote: https://devcenter.heroku.com/articles/troubleshooting-node-deploys
remote:
remote: Some possible problems:
remote:
remote: - Node version not specified in package.json
remote: https://devcenter.heroku.com/articles/nodejs-support#specifying-a-node-js-version
remote:
remote: Love,
remote: Heroku
remote:
remote: ! Push rejected, failed to compile Node.js app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to pure-everglades-46346.