Describe the bug
When I try to build the app on Heroku, the build fails.
Expected behavior
To build the app.
Error Message
-----> Building on the Heroku-20 stack
-----> Determining which buildpack to use for this app
-----> Node.js app detected
-----> Creating runtime environment
NPM_CONFIG_LOGLEVEL=error
NODE_VERBOSE=false
NODE_ENV=production
NODE_MODULES_CACHE=true
-----> Installing binaries
engines.node (package.json): >=14.0.0
engines.npm (package.json): unspecified (use default)
Resolving node version >=14.0.0...
Downloading and installing node 16.0.0...
Using default npm version: 7.10.0
-----> Installing dependencies
Installing node modules
npm ERR! code 1
npm ERR! path /tmp/build_76724f31/node_modules/erlpack
npm ERR! command failed
npm ERR! command sh -c node-gyp rebuild
npm ERR! make: Entering directory '/tmp/build_76724f31/node_modules/erlpack/build'
npm ERR! CC(target) Release/obj.target/zlib/vendor/zlib/adler32.o
npm ERR! CC(target) Release/obj.target/zlib/vendor/zlib/compress.o
npm ERR! CC(target) Release/obj.target/zlib/vendor/zlib/crc32.o
npm ERR! CC(target) Release/obj.target/zlib/vendor/zlib/deflate.o
npm ERR! CC(target) Release/obj.target/zlib/vendor/zlib/gzclose.o
npm ERR! CC(target) Release/obj.target/zlib/vendor/zlib/gzlib.o
npm ERR! CC(target) Release/obj.target/zlib/vendor/zlib/gzread.o
npm ERR! CC(target) Release/obj.target/zlib/vendor/zlib/gzwrite.o
npm ERR! CC(target) Release/obj.target/zlib/vendor/zlib/infback.o
npm ERR! CC(target) Release/obj.target/zlib/vendor/zlib/inffast.o
npm ERR! CC(target) Release/obj.target/zlib/vendor/zlib/inflate.o
npm ERR! CC(target) Release/obj.target/zlib/vendor/zlib/inftrees.o
npm ERR! CC(target) Release/obj.target/zlib/vendor/zlib/trees.o
npm ERR! CC(target) Release/obj.target/zlib/vendor/zlib/uncompr.o
npm ERR! CC(target) Release/obj.target/zlib/vendor/zlib/zutil.o
npm ERR! AR(target) Release/obj.target/vendor/zlib.a
npm ERR! COPY Release/zlib.a
npm ERR! CXX(target) Release/obj.target/erlpack/js/erlpack.o
npm ERR! make: Leaving directory '/tmp/build_76724f31/node_modules/erlpack/build'
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | linux | x64
npm ERR! gyp info find Python using Python version 3.8.5 found at "/usr/bin/python3"
npm ERR! gyp http GET https://nodejs.org/download/release/v16.0.0/node-v16.0.0-headers.tar.gz
npm ERR! gyp http 200 https://nodejs.org/download/release/v16.0.0/node-v16.0.0-headers.tar.gz
npm ERR! gyp http GET https://nodejs.org/download/release/v16.0.0/SHASUMS256.txt
npm ERR! gyp http 200 https://nodejs.org/download/release/v16.0.0/SHASUMS256.txt
npm ERR! (node:938) [DEP0150] DeprecationWarning: Setting process.config is deprecated. In the future the property will be read-only.
npm ERR! (Use node --trace-deprecation ...
to show where the warning was created)
npm ERR! gyp info spawn /usr/bin/python3
npm ERR! gyp info spawn args [
npm ERR! gyp info spawn args '/tmp/build_76724f31/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
npm ERR! gyp info spawn args 'binding.gyp',
npm ERR! gyp info spawn args '-f',
npm ERR! gyp info spawn args 'make',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/tmp/build_76724f31/node_modules/erlpack/build/config.gypi',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/tmp/build_76724f31/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
npm ERR! gyp info spawn args '-I',
npm ERR! gyp info spawn args '/app/.cache/node-gyp/16.0.0/include/node/common.gypi',
npm ERR! gyp info spawn args '-Dlibrary=shared_library',
npm ERR! gyp info spawn args '-Dvisibility=default',
npm ERR! gyp info spawn args '-Dnode_root_dir=/app/.cache/node-gyp/16.0.0',
npm ERR! gyp info spawn args '-Dnode_gyp_dir=/tmp/build_76724f31/.heroku/node/lib/node_modules/npm/node_modules/node-gyp',
npm ERR! gyp info spawn args '-Dnode_lib_file=/app/.cache/node-gyp/16.0.0/<(target_arch)/node.lib',
npm ERR! gyp info spawn args '-Dmodule_root_dir=/tmp/build_76724f31/node_modules/erlpack',
npm ERR! gyp info spawn args '-Dnode_engine=v8',
npm ERR! gyp info spawn args '--depth=.',
npm ERR! gyp info spawn args '--no-parallel',
npm ERR! gyp info spawn args '--generator-output',
npm ERR! gyp info spawn args 'build',
npm ERR! gyp info spawn args '-Goutput_dir=.'
npm ERR! gyp info spawn args ]
npm ERR! gyp info spawn make
npm ERR! gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
npm ERR! ../vendor/zlib/infback.c: In function ‘inflateBack’:
npm ERR! ../vendor/zlib/infback.c:479:25: warning: this statement may fall through [-Wimplicit-fallthrough=]
npm ERR! 479 | state->mode = LEN;
npm ERR! | ~~~~~~~~~~~~^~~~~
npm ERR! ../vendor/zlib/infback.c:481:9: note: here
npm ERR! 481 | case LEN:
npm ERR! | ^~~~
npm ERR! ../vendor/zlib/inflate.c: In function ‘inflateMark’:
npm ERR! ../vendor/zlib/inflate.c:1507:61: warning: left shift of negative value [-Wshift-negative-value]
npm ERR! 1507 | if (strm == Z_NULL || strm->state == Z_NULL) return -1L << 16;
npm ERR! | ^~
npm ERR! ../vendor/zlib/inflate.c: In function ‘inflate’:
npm ERR! ../vendor/zlib/inflate.c:720:25: warning: this statement may fall through [-Wimplicit-fallthrough=]
npm ERR! 720 | state->mode = EXLEN;
npm ERR! | ~~~~~~~~~~~~^~~~~~~
npm ERR! ../vendor/zlib/inflate.c:721:9: note: here
npm ERR! 721 | case EXLEN:
npm ERR! | ^~~~
npm ERR! ../vendor/zlib/inflate.c:732:25: warning: this statement may fall through [-Wimplicit-fallthrough=]
npm ERR! 732 | state->mode = EXTRA;
npm ERR! | ~~~~~~~~~~~~^~~~~~~
npm ERR! ../vendor/zlib/inflate.c:733:9: note: here
npm ERR! 733 | case EXTRA:
npm ERR! | ^~~~
npm ERR! ../vendor/zlib/inflate.c:754:25: warning: this statement may fall through [-Wimplicit-fallthrough=]
npm ERR! 754 | state->mode = NAME;
npm ERR! | ~~~~~~~~~~~~^~~~~~
npm ERR! ../vendor/zlib/inflate.c:755:9: note: here
npm ERR! 755 | case NAME:
npm ERR! | ^~~~
npm ERR! ../vendor/zlib/inflate.c:775:25: warning: this statement may fall through [-Wimplicit-fallthrough=]
npm ERR! 775 | state->mode = COMMENT;
npm ERR! | ~~~~~~~~~~~~^~~~~~~~~
npm ERR! ../vendor/zlib/inflate.c:776:9: note: here
npm ERR! 776 | case COMMENT:
npm ERR! | ^~~~
npm ERR! ../vendor/zlib/inflate.c:795:25: warning: this statement may fall through [-Wimplicit-fallthrough=]
npm ERR! 795 | state->mode = HCRC;
npm ERR! | ~~~~~~~~~~~~^~~~~~
npm ERR! ../vendor/zlib/inflate.c:796:9: note: here
npm ERR! 796 | case HCRC:
npm ERR! | ^~~~
npm ERR! ../vendor/zlib/inflate.c:818:25: warning: this statement may fall through [-Wimplicit-fallthrough=]
npm ERR! 818 | state->mode = DICT;
npm ERR! | ~~~~~~~~~~~~^~~~~~
npm ERR! ../vendor/zlib/inflate.c:819:9: note: here
npm ERR! 819 | case DICT:
npm ERR! | ^~~~
npm ERR! ../vendor/zlib/inflate.c:825:25: warning: this statement may fall through [-Wimplicit-fallthrough=]
npm ERR! 825 | state->mode = TYPE;
npm ERR! | ~~~~~~~~~~~~^~~~~~
npm ERR! ../vendor/zlib/inflate.c:826:9: note: here
npm ERR! 826 | case TYPE:
npm ERR! | ^~~~
npm ERR! ../vendor/zlib/inflate.c:827:16: warning: this statement may fall through [-Wimplicit-fallthrough=]
npm ERR! 827 | if (flush == Z_BLOCK || flush == Z_TREES) goto inf_leave;
npm ERR! | ^
npm ERR! ../vendor/zlib/inflate.c:828:9: note: here
npm ERR! 828 | case TYPEDO:
npm ERR! | ^~~~
npm ERR! ../vendor/zlib/inflate.c:877:16: warning: this statement may fall through [-Wimplicit-fallthrough=]
npm ERR! 877 | if (flush == Z_TREES) goto inf_leave;
npm ERR! | ^
npm ERR! ../vendor/zlib/inflate.c:878:9: note: here
npm ERR! 878 | case COPY_:
npm ERR! | ^~~~
npm ERR! ../vendor/zlib/inflate.c:879:25: warning: this statement may fall through [-Wimplicit-fallthrough=]
npm ERR! 879 | state->mode = COPY;
npm ERR! | ~~~~~~~~~~~~^~~~~~
npm ERR! ../vendor/zlib/inflate.c:880:9: note: here
npm ERR! 880 | case COPY:
npm ERR! | ^~~~
npm ERR! ../vendor/zlib/inflate.c:1018:16: warning: this statement may fall through [-Wimplicit-fallthrough=]
npm ERR! 1018 | if (flush == Z_TREES) goto inf_leave;
npm ERR! | ^
npm ERR! ../vendor/zlib/inflate.c:1019:9: note: here
npm ERR! 1019 | case LEN_:
npm ERR! | ^~~~
npm ERR! ../vendor/zlib/inflate.c:1020:25: warning: this statement may fall through [-Wimplicit-fallthrough=]
npm ERR! 1020 | state->mode = LEN;
npm ERR! | ~~~~~~~~~~~~^~~~~
npm ERR! ../vendor/zlib/inflate.c:1021:9: note: here
npm ERR! 1021 | case LEN:
npm ERR! | ^~~~
npm ERR! ../vendor/zlib/inflate.c:1069:25: warning: this statement may fall through [-Wimplicit-fallthrough=]
npm ERR! 1069 | state->mode = LENEXT;
npm ERR! | ~~~~~~~~~~~~^~~~~~~~
npm ERR! ../vendor/zlib/inflate.c:1070:9: note: here
npm ERR! 1070 | case LENEXT:
npm ERR! | ^~~~
npm ERR! ../vendor/zlib/inflate.c:1079:25: warning: this statement may fall through [-Wimplicit-fallthrough=]
npm ERR! 1079 | state->mode = DIST;
npm ERR! | ~~~~~~~~~~~~^~~~~~
npm ERR! ../vendor/zlib/inflate.c:1080:9: note: here
npm ERR! 1080 | case DIST:
npm ERR! | ^~~~
npm ERR! ../vendor/zlib/inflate.c:1106:25: warning: this statement may fall through [-Wimplicit-fallthrough=]
npm ERR! 1106 | state->mode = DISTEXT;
npm ERR! | ~~~~~~~~~~~~^~~~~~~~~
npm ERR! ../vendor/zlib/inflate.c:1107:9: note: here
npm ERR! 1107 | case DISTEXT:
npm ERR! | ^~~~
npm ERR! ../vendor/zlib/inflate.c:1122:25: warning: this statement may fall through [-Wimplicit-fallthrough=]
npm ERR! 1122 | state->mode = MATCH;
npm ERR! | ~~~~~~~~~~~~^~~~~~~
npm ERR! ../vendor/zlib/inflate.c:1123:9: note: here
npm ERR! 1123 | case MATCH:
npm ERR! | ^~~~
npm ERR! ../vendor/zlib/inflate.c:1197:25: warning: this statement may fall through [-Wimplicit-fallthrough=]
npm ERR! 1197 | state->mode = LENGTH;
npm ERR! | ~~~~~~~~~~~~^~~~~~~~
npm ERR! ../vendor/zlib/inflate.c:1198:9: note: here
npm ERR! 1198 | case LENGTH:
npm ERR! | ^~~~
npm ERR! ../vendor/zlib/inflate.c:1210:25: warning: this statement may fall through [-Wimplicit-fallthrough=]
npm ERR! 1210 | state->mode = DONE;
npm ERR! | ~~~~~~~~~~~~^~~~~~
npm ERR! ../vendor/zlib/inflate.c:1211:9: note: here
npm ERR! 1211 | case DONE:
npm ERR! | ^~~~
npm ERR! In file included from /app/.cache/node-gyp/16.0.0/include/node/v8.h:30,
npm ERR! from /app/.cache/node-gyp/16.0.0/include/node/node.h:63,
npm ERR! from ../../nan/nan.h:56,
npm ERR! from ../js/erlpack.cc:1:
npm ERR! /app/.cache/node-gyp/16.0.0/include/node/v8-internal.h: In function ‘void v8::internal::PerformCastCheck(T*)’:
npm ERR! /app/.cache/node-gyp/16.0.0/include/node/v8-internal.h:452:38: error: ‘remove_cv_t’ is not a member of ‘std’; did you mean ‘remove_cv’?
npm ERR! 452 | !std::is_same<Data, std::remove_cv_t>::value>::Perform(data);
npm ERR! | ^~~~~~~~~~~
npm ERR! | remove_cv
npm ERR! /app/.cache/node-gyp/16.0.0/include/node/v8-internal.h:452:38: error: ‘remove_cv_t’ is not a member of ‘std’; did you mean ‘remove_cv’?
npm ERR! 452 | !std::is_same<Data, std::remove_cv_t>::value>::Perform(data);
npm ERR! | ^~~~~~~~~~~
npm ERR! | remove_cv
npm ERR! /app/.cache/node-gyp/16.0.0/include/node/v8-internal.h:452:50: error: template argument 2 is invalid
npm ERR! 452 | !std::is_same<Data, std::remove_cv_t>::value>::Perform(data);
npm ERR! | ^
npm ERR! /app/.cache/node-gyp/16.0.0/include/node/v8-internal.h:452:63: error: ‘::Perform’ has not been declared
npm ERR! 452 | !std::is_same<Data, std::remove_cv_t>::value>::Perform(data);
npm ERR! | ^~~~~~~
npm ERR! In file included from ../js/erlpack.cc:3:
npm ERR! ../js/decoder.h: In member function ‘v8::Localv8::Value Decoder::decodeBig(uint32_t)’:
npm ERR! ../js/decoder.h:260:62: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers]
npm ERR! 260 | const uint8_t length = static_cast(res);
npm ERR! | ^
npm ERR! In file included from ../../nan/nan.h:56,
npm ERR! from ../js/erlpack.cc:1:
npm ERR! ../js/erlpack.cc: At global scope:
npm ERR! /app/.cache/node-gyp/16.0.0/include/node/node.h:806:43: warning: cast between incompatible function types from ‘void ()(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void ()(v8::Localv8::Object)’} to ‘node::addon_register_func’ {aka ‘void ()(v8::Localv8::Object, v8::Localv8::Value, void)’} [-Wcast-function-type]
npm ERR! 806 | (node::addon_register_func) (regfunc),
npm ERR! | ^
npm ERR! /app/.cache/node-gyp/16.0.0/include/node/node.h:840:3: note: in expansion of macro ‘NODE_MODULE_X’
npm ERR! 840 | NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage)
npm ERR! | ^~~~~~~~~~~~~
npm ERR! ../js/erlpack.cc:49:1: note: in expansion of macro ‘NODE_MODULE’
npm ERR! 49 | NODE_MODULE(erlpack, Init);
npm ERR! | ^~~~~~~~~~~
npm ERR! make: *** [erlpack.target.mk:120: Release/obj.target/erlpack/js/erlpack.o] Error 1
npm ERR! gyp ERR! build error
npm ERR! gyp ERR! stack Error: make
failed with exit code: 2
npm ERR! gyp ERR! stack at ChildProcess.onExit (/tmp/build_76724f31/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:365:28)
npm ERR! gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:290:12)
npm ERR! gyp ERR! System Linux 4.4.0-1088-aws
npm ERR! gyp ERR! command "/tmp/build_76724f31/.heroku/node/bin/node" "/tmp/build_76724f31/.heroku/node/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
npm ERR! gyp ERR! cwd /tmp/build_76724f31/node_modules/erlpack
npm ERR! gyp ERR! node -v v16.0.0
npm ERR! gyp ERR! node-gyp -v v7.1.2
npm ERR! gyp ERR! not ok
npm ERR! A complete log of this run can be found in:
npm ERR! /tmp/npmcache.fDvqK/_logs/2021-04-20T18_57_50_352Z-debug.log
-----> 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
Additional context
I deleted my original app to remake it and add a webhook this time.