package.json is not node-pre-gyp ready, but what do the properties mean?

Hamuel picture Hamuel · Sep 8, 2019 · Viewed 7.2k times · Source

I want to deploy an app to heroku. A while ago it was working, but when I tried to push, now it gives me "Push rejected".

I tried to run node-pre-gyp install and it tells me that my package.json is not node-pre-gyp ready, telling me that:

package.json must declare these properties:

main

version

binary.module_name

binary.module_path

binary.host

It seems like this is the problem, however, I'm quite new to web developing (this is my first project) and I have no idea what these properties mean so I don't know how to add them in my package.json.

heroku login
git add .
git commit -m "test"
git push heroku master

This is how I usually deploy the code.

{
  "name": "myproject",
  "private": true,
  "engines": {
    "node": "8.10.0"
  },
  "scripts": {
    "start": "meteor run",
    "test": "meteor test --once --driver-package meteortesting:mocha",
    "test-app": "TEST_WATCH=1 meteor test --full-app --driver-package meteortesting:mocha",
    "visualize": "meteor --production --extra-packages bundle-visualizer"
  },
  "dependencies": {
    "@babel/runtime": "^7.6.0",
    "bcrypt": "^3.0.0",
    "bcryptjs": "^2.4.3",
    "meteor-node-stubs": "^0.4.1",
    "node-pre-gyp": "0.13.0"
  },
  "meteor": {
    "mainModule": {
      "client": "client/main.js",
      "server": "server/main.js"
    },
    "testModule": "tests/main.js"
  }
}

This is my package.json.

remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/regexpu-core
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/regenerate
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/regenerate-unicode-properties
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/regjsgen
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/regjsparser
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/regjsparser/node_modules/jsesc
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/unicode-match-property-ecmascript
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/unicode-canonical-property-names-ecmascript
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/unicode-property-aliases-ecmascript
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/unicode-match-property-value-ecmascript
remote: @babel/[email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/@babel/preset-react
remote: @babel/[email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/@babel/runtime
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/regenerator-runtime
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/acorn
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-helper-evaluate-path
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-helper-flip-expressions
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-helper-is-nodes-equiv
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-helper-is-void-0
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-helper-mark-eval-scopes
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-helper-remove-or-void
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-helper-to-multiple-sequence-expressions
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-plugin-minify-builtins
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-plugin-minify-constant-folding
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-plugin-minify-dead-code-elimination
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/lodash.some
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-plugin-minify-flip-comparisons
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-plugin-minify-guarded-expressions
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-plugin-minify-infinity
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-plugin-minify-mangle-names
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-plugin-minify-numeric-literals
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-plugin-minify-replace
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-plugin-minify-simplify
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-plugin-minify-type-constructors
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-plugin-transform-es2015-modules-reify
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-plugin-transform-es2015-modules-reify/node_modules/reify
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-plugin-transform-inline-consecutive-adds
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-plugin-transform-member-expression-literals
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-plugin-transform-merge-sibling-variables
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-plugin-transform-minify-booleans
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-plugin-transform-property-literals
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-plugin-transform-regexp-constructors
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-plugin-transform-remove-console
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-plugin-transform-remove-debugger
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-plugin-transform-remove-undefined
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-plugin-transform-simplify-comparison-operators
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-plugin-transform-undefined-to-void
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-preset-meteor
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/babel-preset-minify
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/lodash.isplainobject
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/json5
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel-helpers
remote: [email protected] /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/meteor/babel-compiler/node_modules/reify
remote: 
remote: > [email protected] install /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/bcrypt
remote: > node-pre-gyp install --fallback-to-build
remote: 
remote: node-pre-gyp WARN Pre-built binaries not installable for [email protected] and [email protected] (node-v57 ABI, glibc) (falling back to source compile with node-gyp) 
remote: node-pre-gyp WARN Hit error Remote end closed socket abruptly. 
remote: node-pre-gyp WARN Pre-built binaries not installable for [email protected] and [email protected] (node-v57 ABI, glibc) (falling back to source compile with node-gyp) 
remote: node-pre-gyp WARN Hit error bad download 
remote: make: Entering directory '/tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/bcrypt/build'
remote: make: Entering directory '/tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/bcrypt/build'
remote:   CXX(target) Release/obj.target/bcrypt_lib/src/blowfish.o
remote:   CXX(target) Release/obj.target/bcrypt_lib/src/blowfish.o
remote: rm: cannot remove './Release/.deps/Release/obj.target/bcrypt_lib/src/blowfish.o.d.raw': No such file or directory
remote: bcrypt_lib.target.mk:103: recipe for target 'Release/obj.target/bcrypt_lib/src/blowfish.o' failed
remote: make: *** [Release/obj.target/bcrypt_lib/src/blowfish.o] Error 1
remote: make: Leaving directory '/tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/bcrypt/build'
remote:   CXX(target) Release/obj.target/bcrypt_lib/src/bcrypt.o
remote: gyp ERR! build error 
remote: gyp ERR! stack Error: `make` failed with exit code: 2
remote: gyp ERR! stack     at ChildProcess.onExit (/app/tmp/cache/meteor/.meteor/packages/meteor-tool/.1.8.1.1sak1mc.c14s++os.linux.x86_64+web.browser+web.browser.legacy+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:262:23)
remote: gyp ERR! stack     at emitTwo (events.js:126:13)
remote: gyp ERR! stack     at ChildProcess.emit (events.js:214:7)
remote: gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)
remote: gyp ERR! System Linux 4.4.0-1048-aws
remote: gyp ERR! command "/app/tmp/cache/meteor/.meteor/packages/meteor-tool/.1.8.1.1sak1mc.c14s++os.linux.x86_64+web.browser+web.browser.legacy+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/node" "/app/tmp/cache/meteor/.meteor/packages/meteor-tool/.1.8.1.1sak1mc.c14s++os.linux.x86_64+web.browser+web.browser.legacy+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/bcrypt/lib/binding/bcrypt_lib.node" "--module_name=bcrypt_lib" "--module_path=/tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/bcrypt/lib/binding" "--napi_version=3" "--node_abi_napi=napi"
remote: gyp ERR! cwd /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/bcrypt
remote: gyp ERR! node -v v8.15.1
remote: gyp ERR! node-gyp -v v3.8.0
remote: gyp ERR! not ok 
remote: node-pre-gyp ERR! build error 
remote: node-pre-gyp ERR! stack Error: Failed to execute '/app/tmp/cache/meteor/.meteor/packages/meteor-tool/.1.8.1.1sak1mc.c14s++os.linux.x86_64+web.browser+web.browser.legacy+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/node /app/tmp/cache/meteor/.meteor/packages/meteor-tool/.1.8.1.1sak1mc.c14s++os.linux.x86_64+web.browser+web.browser.legacy+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/bcrypt/lib/binding/bcrypt_lib.node --module_name=bcrypt_lib --module_path=/tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/bcrypt/lib/binding --napi_version=3 --node_abi_napi=napi' (1)
remote: node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/bcrypt/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
remote: node-pre-gyp ERR! stack     at emitTwo (events.js:126:13)
remote: node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:214:7)
remote: node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:915:16)
remote: node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
remote: node-pre-gyp ERR! System Linux 4.4.0-1048-aws
remote: node-pre-gyp ERR! command "/app/tmp/cache/meteor/.meteor/packages/meteor-tool/.1.8.1.1sak1mc.c14s++os.linux.x86_64+web.browser+web.browser.legacy+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/node" "/tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/bcrypt/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
remote: node-pre-gyp ERR! cwd /tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/bcrypt
remote: node-pre-gyp ERR! node -v v8.15.1
remote: node-pre-gyp ERR! node-pre-gyp -v v0.10.2
remote: node-pre-gyp ERR! not ok 
remote: Failed to execute '/app/tmp/cache/meteor/.meteor/packages/meteor-tool/.1.8.1.1sak1mc.c14s++os.linux.x86_64+web.browser+web.browser.legacy+web.cordova/mt-os.linux.x86_64/dev_bundle/bin/node /app/tmp/cache/meteor/.meteor/packages/meteor-tool/.1.8.1.1sak1mc.c14s++os.linux.x86_64+web.browser+web.browser.legacy+web.cordova/mt-os.linux.x86_64/dev_bundle/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/bcrypt/lib/binding/bcrypt_lib.node --module_name=bcrypt_lib --module_path=/tmp/build_be7761c4e5b001e1b5dbfe1536cb4eec/.meteor/heroku_build/app/programs/server/npm/node_modules/bcrypt/lib/binding --napi_version=3 --node_abi_napi=napi' (1)
remote: npm ERR! code ELIFECYCLE
remote: npm ERR! errno 1
remote: npm ERR! [email protected] install: `node-pre-gyp install --fallback-to-build`
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!     /app/.npm/_logs/2019-09-08T15_17_16_793Z-debug.log
remote: npm ERR! code ELIFECYCLE
remote: npm ERR! errno 1
remote: npm ERR! meteor-dev-bundle@ install: `node npm-rebuild.js`
remote: npm ERR! Exit status 1
remote: npm ERR! 
remote: npm ERR! Failed at the meteor-dev-bundle@ 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!     /app/.npm/_logs/2019-09-08T15_17_16_852Z-debug.log
remote: make: *** wait: No child processes.  Stop.
remote: make: *** Waiting for unfinished jobs....
remote: make: *** wait: No child processes.  Stop.
remote:  !     Push rejected, failed to compile Node.js app.
remote: 
remote:  !     Push failed
remote: Verifying deploy...
remote: 
remote: !   Push rejected to frozenfruits.
remote: 
To https://git.heroku.com/frozenfruits.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/frozenfruits.git'

This is the error log when I run git push heroku master.

Answer

coagmano picture coagmano · Sep 10, 2019

Working backwards from the error, the key lines in the error log are:

remote: npm ERR! Failed at the [email protected] install script.

Which tells us that bcrypt's install script is the culprit (not your app code)

remote: gyp ERR! stack Error: `make` failed with exit code: 2

Which shows an error when node-gyp was running make which is used to compile native addons to node. and:

remote: node-pre-gyp WARN Pre-built binaries not installable for [email protected] and [email protected] (node-v57 ABI, glibc) (falling back to source compile with node-gyp) 

Which tells us that node-pre-gyp initially tried to download a pre-built version of bcrypt to save you the hassle of compilation, but failed because there's isn't a pre-built version of bcrypt 3 for node 8.

This means that if we find a version of bcrypt that works for the node version, we should be good! The version compatibility table tells us:

| Node Version | bcrypt Version | 
| ------------ |:--------------:|
|      8       |    >= 1.0.3    |
|    10, 11    |      >= 3      |

So you want a version of bcrypt between 1.0.3 and 3.0.0.

Looking at the versions tab on npm, we see the latest version that fits is 2.0.1

So you want to change the version in your package.json to 2.0.1:

  "dependencies": {
    "bcrypt": "^2.0.1",
    ... etc

While you're at it, you should probably remove bcryptjs if you're using bcrypt, and node-pre-gyp, as it's very unlikely your actual application is using that in production

In fact, that'd be why node-pre-gyp install is telling you that you're not "node-pre-gyp ready", just remove node-pre-gyp