Home > Mobile >  How to circumvent Heroku adding x86_64-linux error
How to circumvent Heroku adding x86_64-linux error

Time:03-07

i'm trying to push my app to heroku and whenever I try this it raises an error asking to add x86_64-linux to my platforms which is apparently normal with a bundler 2.2.3 . This is not a problem however when I do this it raises an error with precompling assets.

remote:        /app/.node-gyp/16.13.1/include/node/v8-internal.h:492:38: error: 
‘remove_cv_t’ is not a member of ‘std’; did you mean ‘remove_cv’?
remote:          492 |             !std::is_same<Data, 
std::remove_cv_t<T>>::value>::Perform(data);
remote:              |                                      ^~~~~~~~~~~
remote:              |                                      remove_cv
remote:        /app/.node-gyp/16.13.1/include/node/v8-internal.h:492:38: error: 
‘remove_cv_t’ is not a member of ‘std’; did you mean ‘remove_cv’?
remote:          492 |             !std::is_same<Data, 
std::remove_cv_t<T>>::value>::Perform(data);
remote:              |                                      ^~~~~~~~~~~
remote:              |                                      remove_cv
remote:        /app/.node-gyp/16.13.1/include/node/v8-internal.h:492:50: error: 
template argument 2 is invalid
remote:          492 |             !std::is_same<Data, 
std::remove_cv_t<T>>::value>::Perform(data);
remote:              |                                                  ^
remote:        /app/.node-gyp/16.13.1/include/node/v8-internal.h:492:63: error: 
‘::Perform’ has not been declared
remote:          492 |             !std::is_same<Data, 
std::remove_cv_t<T>>::value>::Perform(data);
remote:              |                                                               
^~~~~~~

and

remote:        /app/.node-gyp/16.13.1/include/node/node.h:855:3: note: in expansion 
of macro ‘NODE_MODULE_X’
remote:          855 |   NODE_MODULE_X(modname, regfunc, NULL, 0)  // NOLINT 
(readability/null_usage)
remote:              |   ^~~~~~~~~~~~~
remote:        ../src/binding.cpp:358:1: note: in expansion of macro ‘NODE_MODULE’
remote:          358 | NODE_MODULE(binding, RegisterModule);
remote:              | ^~~~~~~~~~~
remote:        make: *** [binding.target.mk:133: 
Release/obj.target/binding/src/binding.o] Error 1
remote:        make: Leaving directory '/tmp/build_cfb0d744/node_modules/node- 
sass/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_cfb0d744/node_modules/node-gyp/lib/build.js:262:23)
remote:        gyp ERR! stack     at ChildProcess.emit (node:events:390:28)
remote:        gyp ERR! stack     at Process.ChildProcess._handle.onexit 
(node:internal/child_process:290:12)
remote:        gyp ERR! System Linux 4.4.0-1098-aws
remote:        gyp ERR! command "/tmp/build_cfb0d744/bin/node" 
"/tmp/build_cfb0d744/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "-- 
libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
remote:        gyp ERR! cwd /tmp/build_cfb0d744/node_modules/node-sass
remote:        gyp ERR! node -v v16.13.1
remote:        gyp ERR! node-gyp -v v3.8.0
remote:        gyp ERR! not ok 
remote:        Build failed with error code: 1

From what I can tell the issue raised is that my node version and my node-sass version are not compatible, however when i check my node version in the terminal its v14.15.5 and my node-sass is 4.14.1 which is compatible. However as you see in the error it says the node version is 16.13.1. I belive this is coming from the fact that when I push to heroku it says this

remote: -----> Installing node-v16.13.1-linux-x64
remote: -----> Installing yarn-v1.22.17
remote: -----> Detecting rake tasks
remote: -----> Preparing app for Rails asset pipeline

So it appers is if installing linux-x64 is installing node-v16.13.1 which is not compatible with my node-sass. Does anybody know how I can solve this.

Thanks so much for your help, i'm really stuck.

CodePudding user response:

Make sure to activate the heroku/nodejs buildpack and add an engines section to your package.json (or update the one that's already there):

{
  "name": "...",
  "description": "...",
  "version": "...",
  "engines": {
    "node": "14.x"
  }
}

Then commit and redeploy.

  • Related