I have a problem when creating the application on heroku since link in the file README.md
The deployment on is in error.
-----> Node.js app detected
-----> Creating runtime environment
NPM_CONFIG_LOGLEVEL=error
NODE_ENV=production
NODE_MODULES_CACHE=true
NODE_VERBOSE=false
-----> Installing binaries
engines.node (package.json): >=10.15
engines.npm (package.json): unspecified (use default)
engines.yarn (package.json): unspecified (use default)
Resolving node version >=10.15...
Downloading and installing node 12.4.0...
Using default npm version: 6.9.0
Resolving yarn version 1.x...
Downloading and installing yarn (1.16.0)...
Installed yarn 1.16.0
-----> Installing dependencies
Installing node modules (yarn.lock)
yarn install v1.16.0
[1/4] Resolving packages...
[2/4] Fetching packages...
info [email protected]: The platform "linux" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
[4/4] Building fresh packages...
error /tmp/build_bf5bc5a9d821bf8c0f1833a5087216f7/node_modules/sharp: Command failed.
Exit code: 1
Command: (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
Arguments:
Directory: /tmp/build_bf5bc5a9d821bf8c0f1833a5087216f7/node_modules/sharp
Output:
info sharp Downloading https://github.com/lovell/sharp-libvips/releases/download/v8.7.0/libvips-8.7.0-linux-x64.tar.gz
make: Entering directory '/tmp/build_bf5bc5a9d821bf8c0f1833a5087216f7/node_modules/sharp/build'
TOUCH Release/obj.target/libvips-cpp.stamp
CXX(target) Release/obj.target/sharp/src/common.o
In file included from ../../nan/nan_new.h:189:0,
from ../../nan/nan.h:223,
from ../src/common.cc:24:
../../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>)’:
../../nan/nan_implementation_12_inl.h:356:37: error: no matching function for call to ‘v8::StringObject::New(v8::Local<v8::String>&)’
return v8::StringObject::New(value).As<v8::StringObject>();
^
In file included from /app/.node-gyp/12.4.0/include/node/node.h:63:0,
from ../src/common.cc:22:
/app/.node-gyp/12.4.0/include/node/v8.h:5380:23: note: candidate: static v8::Local<v8::Value> v8::StringObject::New(v8::Isolate*, v8::Local<v8::String>)
static Local<Value> New(Isolate* isolate, Local<String> value);
^~~
/app/.node-gyp/12.4.0/include/node/v8.h:5380:23: note: candidate expects 2 arguments, 1 provided
In file included from ../../nan/nan_new.h:189:0,
from ../../nan/nan.h:223,
from ../src/common.cc:24:
../../nan/nan_implementation_12_inl.h:356:58: error: expected primary-expression before ‘>’ token
return v8::StringObject::New(value).As<v8::StringObject>();
^
../../nan/nan_implementation_12_inl.h:356:60: error: expected primary-expression before ‘)’ token
return v8::StringObject::New(value).As<v8::StringObject>();
^
In file included from /usr/include/c++/7/cassert:44:0,
from /app/.node-gyp/12.4.0/include/node/node_object_wrap.h:26,
from ../../nan/nan.h:55,
from ../src/common.cc:24:
../../nan/nan_object_wrap.h: In destructor ‘virtual Nan::ObjectWrap::~ObjectWrap()’:
../../nan/nan_object_wrap.h:24:25: error: ‘class Nan::Persistent<v8::Object>’ has no member named ‘IsNearDeath’
assert(persistent().IsNearDeath());
^
../../nan/nan_object_wrap.h: In static member function ‘static void Nan::ObjectWrap::WeakCallback(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’:
../../nan/nan_object_wrap.h:127:26: error: ‘class Nan::Persistent<v8::Object>’ has no member named ‘IsNearDeath’
assert(wrap->handle_.IsNearDeath());
^
In file included from ../src/common.cc:27:0:
../src/common.h: At global scope:
../src/common.h:78:20: error: ‘Handle’ is not a member of ‘v8’
bool HasAttr(v8::Handle<v8::Object> obj, std::string attr);
^~~~~~
../src/common.h:78:37: error: expected primary-expression before ‘>’ token
bool HasAttr(v8::Handle<v8::Object> obj, std::string attr);
^
../src/common.h:78:39: error: ‘obj’ was not declared in this scope
bool HasAttr(v8::Handle<v8::Object> obj, std::string attr);
^~~
../src/common.h:78:56: error: expected primary-expression before ‘attr’
bool HasAttr(v8::Handle<v8::Object> obj, std::string attr);
^~~~
../src/common.h:78:60: error: expression list treated as compound expression in initializer [-fpermissive]
bool HasAttr(v8::Handle<v8::Object> obj, std::string attr);
^
../src/common.h:79:29: error: ‘Handle’ is not a member of ‘v8’
std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr);
^~~~~~
../src/common.h:79:46: error: expected primary-expression before ‘>’ token
std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr);
^
../src/common.h:79:48: error: ‘obj’ was not declared in this scope
std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr);
^~~
../src/common.h:79:65: error: expected primary-expression before ‘attr’
std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr);
^~~~
../src/common.h:80:38: error: ‘Handle’ is not a member of ‘v8’
std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr);
^~~~~~
../src/common.h:80:55: error: expected primary-expression before ‘>’ token
std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr);
^
../src/common.h:80:57: error: ‘obj’ was not declared in this scope
std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr);
^~~
../src/common.h:80:74: error: expected primary-expression before ‘attr’
std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr);
^~~~
../src/common.h:81:48: error: ‘Handle’ is not a member of ‘v8’
template<typename T> v8::Local<T> AttrAs(v8::Handle<v8::Object> obj, std::string attr) {
^~~~~~
../src/common.h:81:65: error: expected primary-expression before ‘>’ token
template<typename T> v8::Local<T> AttrAs(v8::Handle<v8::Object> obj, std::string attr) {
^
../src/common.h:81:67: error: ‘obj’ was not declared in this scope
template<typename T> v8::Local<T> AttrAs(v8::Handle<v8::Object> obj, std::string attr) {
^~~
../src/common.h:81:84: error: expected primary-expression before ‘attr’
template<typename T> v8::Local<T> AttrAs(v8::Handle<v8::Object> obj, std::string attr) {
^~~~
../src/common.h:81:37: warning: variable templates only available with -std=c++14 or -std=gnu++14
template<typename T> v8::Local<T> AttrAs(v8::Handle<v8::Object> obj, std::string attr) {
^~~~~~
../src/common.h:81:90: error: expected ‘;’ before ‘{’ token
template<typename T> v8::Local<T> AttrAs(v8::Handle<v8::Object> obj, std::string attr) {
^
../src/common.h:84:37: error: ‘Handle’ is not a member of ‘v8’
template<typename T> T AttrTo(v8::Handle<v8::Object> obj, std::string attr) {
^~~~~~
../src/common.h:84:54: error: expected primary-expression before ‘>’ token
template<typename T> T AttrTo(v8::Handle<v8::Object> obj, std::string attr) {
^
../src/common.h:84:56: error: ‘obj’ was not declared in this scope
template<typename T> T AttrTo(v8::Handle<v8::Object> obj, std::string attr) {
^~~
../src/common.h:84:73: error: expected primary-expression before ‘attr’
template<typename T> T AttrTo(v8::Handle<v8::Object> obj, std::string attr) {
^~~~
../src/common.h:84:26: warning: variable templates only available with -std=c++14 or -std=gnu++14
template<typename T> T AttrTo(v8::Handle<v8::Object> obj, std::string attr) {
^~~~~~
../src/common.h:84:79: error: expected ‘;’ before ‘{’ token
template<typename T> T AttrTo(v8::Handle<v8::Object> obj, std::string attr) {
^
../src/common.h:87:37: error: ‘Handle’ is not a member of ‘v8’
template<typename T> T AttrTo(v8::Handle<v8::Object> obj, int attr) {
^~~~~~
../src/common.h:87:54: error: expected primary-expression before ‘>’ token
template<typename T> T AttrTo(v8::Handle<v8::Object> obj, int attr) {
^
../src/common.h:87:56: error: ‘obj’ was not declared in this scope
template<typename T> T AttrTo(v8::Handle<v8::Object> obj, int attr) {
^~~
../src/common.h:87:61: error: expected primary-expression before ‘int’
template<typename T> T AttrTo(v8::Handle<v8::Object> obj, int attr) {
^~~
../src/common.h:84:26: warning: variable templates only available with -std=c++14 or -std=gnu++14
template<typename T> T AttrTo(v8::Handle<v8::Object> obj, std::string attr) {
^~~~~~
../src/common.h:87:71: error: expected ‘;’ before ‘{’ token
template<typename T> T AttrTo(v8::Handle<v8::Object> obj, int attr) {
^
../src/common.h:93:9: error: ‘Handle’ is not a member of ‘v8’
v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist);
^~~~~~
../src/common.h:93:26: error: expected primary-expression before ‘>’ token
v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist);
^
../src/common.h:93:28: error: ‘input’ was not declared in this scope
v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist);
^~~~~
../src/common.h:93:28: note: suggested alternative: ‘ino_t’
v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist);
^~~~~
ino_t
../src/common.h:93:70: error: expected primary-expression before ‘&’ token
v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist);
^
../src/common.h:93:71: error: ‘buffersToPersist’ was not declared in this scope
v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist);
^~~~~~~~~~~~~~~~
../src/common.h:93:87: error: expression list treated as compound expression in initializer [-fpermissive]
v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist);
^
../src/common.cc:34:20: error: redefinition of ‘bool sharp::HasAttr’
bool HasAttr(v8::Handle<v8::Object> obj, std::string attr) {
^~~~~~
In file included from ../src/common.cc:27:0:
../src/common.h:78:8: note: ‘bool sharp::HasAttr’ previously defined here
bool HasAttr(v8::Handle<v8::Object> obj, std::string attr);
^~~~~~~
../src/common.cc:34:20: error: ‘Handle’ is not a member of ‘v8’
bool HasAttr(v8::Handle<v8::Object> obj, std::string attr) {
^~~~~~
../src/common.cc:34:37: error: expected primary-expression before ‘>’ token
bool HasAttr(v8::Handle<v8::Object> obj, std::string attr) {
^
../src/common.cc:34:39: error: ‘obj’ was not declared in this scope
bool HasAttr(v8::Handle<v8::Object> obj, std::string attr) {
^~~
../src/common.cc:34:56: error: expected primary-expression before ‘attr’
bool HasAttr(v8::Handle<v8::Object> obj, std::string attr) {
^~~~
../src/common.cc:37:29: error: redefinition of ‘std::string sharp::AttrAsStr’
std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr) {
^~~~~~
In file included from ../src/common.cc:27:0:
../src/common.h:79:15: note: ‘std::string sharp::AttrAsStr’ previously declared here
std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr);
^~~~~~~~~
../src/common.cc:37:29: error: ‘Handle’ is not a member of ‘v8’
std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr) {
^~~~~~
../src/common.cc:37:46: error: expected primary-expression before ‘>’ token
std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr) {
^
../src/common.cc:37:48: error: ‘obj’ was not declared in this scope
std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr) {
^~~
../src/common.cc:37:65: error: expected primary-expression before ‘attr’
std::string AttrAsStr(v8::Handle<v8::Object> obj, std::string attr) {
^~~~
../src/common.cc:40:38: error: redefinition of ‘std::vector<double> sharp::AttrAsRgba’
std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr) {
^~~~~~
In file included from ../src/common.cc:27:0:
../src/common.h:80:23: note: ‘std::vector<double> sharp::AttrAsRgba’ previously declared here
std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr);
^~~~~~~~~~
../src/common.cc:40:38: error: ‘Handle’ is not a member of ‘v8’
std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr) {
^~~~~~
../src/common.cc:40:55: error: expected primary-expression before ‘>’ token
std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr) {
^
../src/common.cc:40:57: error: ‘obj’ was not declared in this scope
std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr) {
^~~
../src/common.cc:40:74: error: expected primary-expression before ‘attr’
std::vector<double> AttrAsRgba(v8::Handle<v8::Object> obj, std::string attr) {
^~~~
../src/common.cc:51:9: error: redefinition of ‘sharp::InputDescriptor* sharp::CreateInputDescriptor’
v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist
^~~~~~
In file included from ../src/common.cc:27:0:
../src/common.h:92:20: note: ‘sharp::InputDescriptor* sharp::CreateInputDescriptor’ previously defined here
InputDescriptor* CreateInputDescriptor(
^~~~~~~~~~~~~~~~~~~~~
../src/common.cc:51:9: error: ‘Handle’ is not a member of ‘v8’
v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist
^~~~~~
../src/common.cc:51:26: error: expected primary-expression before ‘>’ token
v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist
^
../src/common.cc:51:28: error: ‘input’ was not declared in this scope
v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist
^~~~~
../src/common.cc:51:28: note: suggested alternative: ‘ino_t’
v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist
^~~~~
ino_t
../src/common.cc:51:70: error: expected primary-expression before ‘&’ token
v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist
^
../src/common.cc:51:71: error: ‘buffersToPersist’ was not declared in this scope
v8::Handle<v8::Object> input, std::vector<v8::Local<v8::Object>> &buffersToPersist
^~~~~~~~~~~~~~~~
cc1plus: warning: unrecognized command line option ‘-Wno-cast-function-type’
sharp.target.mk:134: recipe for target 'Release/obj.target/sharp/src/common.o' failed
make: *** [Release/obj.target/sharp/src/common.o] Error 1
make: Leaving directory '/tmp/build_bf5bc5a9d821bf8c0f1833a5087216f7/node_modules/sharp/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/tmp/build_bf5bc5a9d821bf8c0f1833a5087216f7/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23)
gyp ERR! stack at ChildProcess.emit (events.js:200:13)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Linux 4.4.0-1044-aws
gyp ERR! command "/tmp/build_bf5bc5a9d821bf8c0f1833a5087216f7/.heroku/node/bin/node" "/tmp/build_bf5bc5a9d821bf8c0f1833a5087216f7/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /tmp/build_bf5bc5a9d821bf8c0f1833a5087216f7/node_modules/sharp
gyp ERR! node -v v12.4.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
-----> Build failed
We're sorry this build is failing! You can troubleshoot common issues here:
https://devcenter.heroku.com/articles/troubleshooting-node-deploys
Some possible problems:
- Dangerous semver range (>) in engines.node
https://devcenter.heroku.com/articles/nodejs-support#specifying-a-node-js-version
Love,
Heroku
! Push rejected, failed to compile Node.js app.
! Push failed