Vue-storefront-api installation error

Hi Team,

Have tried to install vue-storefront in my localhost
getting below error in install.log

Cloning into ‘…/vue-storefront-api’…
npm WARN deprecated circular-json@0.3.3: CircularJSON is in maintenance only, flatted is its successor.

sharp@0.21.3 install /var/www/html/vue-storefront-api/node_modules/sharp
(node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)

info sharp Using cached /root/.npm/_libvips/libvips-8.7.0-linux-x64.tar.gz
prebuild-install WARN install No prebuilt binaries found (target=12.12.0 runtime=node arch=x64 libc= platform=linux)
make: Entering directory ‘/var/www/html/vue-storefront-api/node_modules/sharp/build’
TOUCH Release/obj.target/libvips-cpp.stamp
CXX(target) Release/obj.target/sharp/src/common.o
In file included from …/src/common.cc:27:0:
…/src/common.h:78:20: error: ‘Handle’ is not a member of ‘v8’
bool HasAttr(v8::Handlev8::Object obj, std::string attr);
^~~~~~
…/src/common.h:78:37: error: expected primary-expression before ‘>’ token
bool HasAttr(v8::Handlev8::Object obj, std::string attr);
^
…/src/common.h:78:39: error: ‘obj’ was not declared in this scope
bool HasAttr(v8::Handlev8::Object obj, std::string attr);
^~~
…/src/common.h:78:56: error: expected primary-expression before ‘attr’
bool HasAttr(v8::Handlev8::Object obj, std::string attr);
^~~~
…/src/common.h:78:60: error: expression list treated as compound expression in initializer [-fpermissive]
bool HasAttr(v8::Handlev8::Object obj, std::string attr);
^
…/src/common.h:79:29: error: ‘Handle’ is not a member of ‘v8’
std::string AttrAsStr(v8::Handlev8::Object obj, std::string attr);
^~~~~~
…/src/common.h:79:46: error: expected primary-expression before ‘>’ token
std::string AttrAsStr(v8::Handlev8::Object obj, std::string attr);
^
…/src/common.h:79:48: error: ‘obj’ was not declared in this scope
std::string AttrAsStr(v8::Handlev8::Object obj, std::string attr);
^~~
…/src/common.h:79:65: error: expected primary-expression before ‘attr’
std::string AttrAsStr(v8::Handlev8::Object obj, std::string attr);
^~~~
…/src/common.h:80:38: error: ‘Handle’ is not a member of ‘v8’
std::vector AttrAsRgba(v8::Handlev8::Object obj, std::string attr);
^~~~~~
…/src/common.h:80:55: error: expected primary-expression before ‘>’ token
std::vector AttrAsRgba(v8::Handlev8::Object obj, std::string attr);
^
…/src/common.h:80:57: error: ‘obj’ was not declared in this scope
std::vector AttrAsRgba(v8::Handlev8::Object obj, std::string attr);
^~~
…/src/common.h:80:74: error: expected primary-expression before ‘attr’
std::vector AttrAsRgba(v8::Handlev8::Object obj, std::string attr);
^~~~
…/src/common.h:81:48: error: ‘Handle’ is not a member of ‘v8’
template v8::Local AttrAs(v8::Handlev8::Object obj, std::string attr) {
^~~~~~
…/src/common.h:81:65: error: expected primary-expression before ‘>’ token
template v8::Local AttrAs(v8::Handlev8::Object obj, std::string attr) {
^
…/src/common.h:81:67: error: ‘obj’ was not declared in this scope
template v8::Local AttrAs(v8::Handlev8::Object obj, std::string attr) {
^~~
…/src/common.h:81:84: error: expected primary-expression before ‘attr’
template v8::Local AttrAs(v8::Handlev8::Object obj, std::string attr) {
^~~~
…/src/common.h:81:37: warning: variable templates only available with -std=c++14 or -std=gnu++14
template v8::Local AttrAs(v8::Handlev8::Object obj, std::string attr) {
^~~~~~
…/src/common.h:81:90: error: expected ‘;’ before ‘{’ token
template v8::Local AttrAs(v8::Handlev8::Object obj, std::string attr) {
^
…/src/common.h:84:37: error: ‘Handle’ is not a member of ‘v8’
template T AttrTo(v8::Handlev8::Object obj, std::string attr) {
^~~~~~
…/src/common.h:84:54: error: expected primary-expression before ‘>’ token
template T AttrTo(v8::Handlev8::Object obj, std::string attr) {
^
…/src/common.h:84:56: error: ‘obj’ was not declared in this scope
template T AttrTo(v8::Handlev8::Object obj, std::string attr) {
^~~
…/src/common.h:84:73: error: expected primary-expression before ‘attr’
template T AttrTo(v8::Handlev8::Object obj, std::string attr) {
^~~~
…/src/common.h:84:26: warning: variable templates only available with -std=c++14 or -std=gnu++14
template T AttrTo(v8::Handlev8::Object obj, std::string attr) {
^~~~~~
…/src/common.h:84:79: error: expected ‘;’ before ‘{’ token
template T AttrTo(v8::Handlev8::Object obj, std::string attr) {
^
…/src/common.h:87:37: error: ‘Handle’ is not a member of ‘v8’
template T AttrTo(v8::Handlev8::Object obj, int attr) {
^~~~~~
…/src/common.h:87:54: error: expected primary-expression before ‘>’ token
template T AttrTo(v8::Handlev8::Object obj, int attr) {
^
…/src/common.h:87:56: error: ‘obj’ was not declared in this scope
template T AttrTo(v8::Handlev8::Object obj, int attr) {
^~~
…/src/common.h:87:61: error: expected primary-expression before ‘int’
template T AttrTo(v8::Handlev8::Object obj, int attr) {
^~~
…/src/common.h:84:26: warning: variable templates only available with -std=c++14 or -std=gnu++14
template T AttrTo(v8::Handlev8::Object obj, std::string attr) {
^~~~~~
…/src/common.h:87:71: error: expected ‘;’ before ‘{’ token
template T AttrTo(v8::Handlev8::Object obj, int attr) {
^
…/src/common.h:93:9: error: ‘Handle’ is not a member of ‘v8’
v8::Handlev8::Object input, std::vector<v8::Localv8::Object> &buffersToPersist);
^~~~~~
…/src/common.h:93:26: error: expected primary-expression before ‘>’ token
v8::Handlev8::Object input, std::vector<v8::Localv8::Object> &buffersToPersist);
^
…/src/common.h:93:28: error: ‘input’ was not declared in this scope
v8::Handlev8::Object input, std::vector<v8::Localv8::Object> &buffersToPersist);
^~~~~
…/src/common.h:93:28: note: suggested alternative: ‘ino_t’
v8::Handlev8::Object input, std::vector<v8::Localv8::Object> &buffersToPersist);
^~~~~
ino_t
…/src/common.h:93:70: error: expected primary-expression before ‘&’ token
v8::Handlev8::Object input, std::vector<v8::Localv8::Object> &buffersToPersist);
^
…/src/common.h:93:71: error: ‘buffersToPersist’ was not declared in this scope
v8::Handlev8::Object input, std::vector<v8::Localv8::Object> &buffersToPersist);
^~~~~~~~~~~~~~~~
…/src/common.h:93:87: error: expression list treated as compound expression in initializer [-fpermissive]
v8::Handlev8::Object input, std::vector<v8::Localv8::Object> &buffersToPersist);
^
…/src/common.cc:34:20: error: redefinition of ‘bool sharp::HasAttr’
bool HasAttr(v8::Handlev8::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::Handlev8::Object obj, std::string attr);
^~~~~~~
…/src/common.cc:34:20: error: ‘Handle’ is not a member of ‘v8’
bool HasAttr(v8::Handlev8::Object obj, std::string attr) {
^~~~~~
…/src/common.cc:34:37: error: expected primary-expression before ‘>’ token
bool HasAttr(v8::Handlev8::Object obj, std::string attr) {
^
…/src/common.cc:34:39: error: ‘obj’ was not declared in this scope
bool HasAttr(v8::Handlev8::Object obj, std::string attr) {
^~~
…/src/common.cc:34:56: error: expected primary-expression before ‘attr’
bool HasAttr(v8::Handlev8::Object obj, std::string attr) {
^~~~
…/src/common.cc:37:29: error: redefinition of ‘std::string sharp::AttrAsStr’
std::string AttrAsStr(v8::Handlev8::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::Handlev8::Object obj, std::string attr);
^~~~~~~~~
…/src/common.cc:37:29: error: ‘Handle’ is not a member of ‘v8’
std::string AttrAsStr(v8::Handlev8::Object obj, std::string attr) {
^~~~~~
…/src/common.cc:37:46: error: expected primary-expression before ‘>’ token
std::string AttrAsStr(v8::Handlev8::Object obj, std::string attr) {
^
…/src/common.cc:37:48: error: ‘obj’ was not declared in this scope
std::string AttrAsStr(v8::Handlev8::Object obj, std::string attr) {
^~~
…/src/common.cc:37:65: error: expected primary-expression before ‘attr’
std::string AttrAsStr(v8::Handlev8::Object obj, std::string attr) {
^~~~
…/src/common.cc:40:38: error: redefinition of ‘std::vector sharp::AttrAsRgba’
std::vector AttrAsRgba(v8::Handlev8::Object obj, std::string attr) {
^~~~~~
In file included from …/src/common.cc:27:0:
…/src/common.h:80:23: note: ‘std::vector sharp::AttrAsRgba’ previously declared here
std::vector AttrAsRgba(v8::Handlev8::Object obj, std::string attr);
^~~~~~~~~~
…/src/common.cc:40:38: error: ‘Handle’ is not a member of ‘v8’
std::vector AttrAsRgba(v8::Handlev8::Object obj, std::string attr) {
^~~~~~
…/src/common.cc:40:55: error: expected primary-expression before ‘>’ token
std::vector AttrAsRgba(v8::Handlev8::Object obj, std::string attr) {
^
…/src/common.cc:40:57: error: ‘obj’ was not declared in this scope
std::vector AttrAsRgba(v8::Handlev8::Object obj, std::string attr) {
^~~
…/src/common.cc:40:74: error: expected primary-expression before ‘attr’
std::vector AttrAsRgba(v8::Handlev8::Object obj, std::string attr) {
^~~~
…/src/common.cc:51:9: error: redefinition of ‘sharp::InputDescriptor* sharp::CreateInputDescriptor’
v8::Handlev8::Object input, std::vector<v8::Localv8::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::Handlev8::Object input, std::vector<v8::Localv8::Object> &buffersToPersist
^~~~~~
…/src/common.cc:51:26: error: expected primary-expression before ‘>’ token
v8::Handlev8::Object input, std::vector<v8::Localv8::Object> &buffersToPersist
^
…/src/common.cc:51:28: error: ‘input’ was not declared in this scope
v8::Handlev8::Object input, std::vector<v8::Localv8::Object> &buffersToPersist
^~~~~
…/src/common.cc:51:28: note: suggested alternative: ‘ino_t’
v8::Handlev8::Object input, std::vector<v8::Localv8::Object> &buffersToPersist
^~~~~
ino_t
…/src/common.cc:51:70: error: expected primary-expression before ‘&’ token
v8::Handlev8::Object input, std::vector<v8::Localv8::Object> &buffersToPersist
^
…/src/common.cc:51:71: error: ‘buffersToPersist’ was not declared in this scope
v8::Handlev8::Object input, std::vector<v8::Localv8::Object> &buffersToPersist
^~~~~~~~~~~~~~~~
cc1plus: warning: unrecognized command line option ‘-Wno-cast-function-type’
sharp.target.mk:136: recipe for target ‘Release/obj.target/sharp/src/common.o’ failed
make: *** [Release/obj.target/sharp/src/common.o] Error 1
make: Leaving directory ‘/var/www/html/vue-storefront-api/node_modules/sharp/build’
gyp ERR! build error
gyp ERR! stack Error: make failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack at ChildProcess.emit (events.js:210:5)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Linux 5.0.0-32-generic
gyp ERR! command “/usr/local/bin/node” “/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js” “rebuild”
gyp ERR! cwd /var/www/html/vue-storefront-api/node_modules/sharp
gyp ERR! node -v v12.12.0
gyp ERR! node-gyp -v v5.0.5
gyp ERR! not ok
npm WARN graphql-tools@1.2.3 requires a peer of graphql@^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 but none is installed. You must install peer dependencies yourself.
npm WARN graphql-toolkit@0.5.0 requires a peer of graphql-tag-pluck@^0.8.3 but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.9 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.9: wanted {“os”:“darwin”,“arch”:“any”} (current: {“os”:“linux”,“arch”:“x64”})

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! sharp@0.21.3 install: (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the sharp@0.21.3 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2019-10-30T10_51_30_229Z-debug.log