I have a simple nodejs application which uses bcrypt as a dependency. Everything just works fine on my local machine but when I am trying to deploy this node app on aws ec2 free tier I get this error. Looks like there are some server limitations in free tier but bcrypt is a standard library. There has to be a way to run a simple node app on aws free tier
[email protected] install /home/ubuntu/backend/node_modules/bcrypt
node-pre-gyp install --fallback-to-build
node-pre-gyp WARN Using request for node-pre-gyp https download
node-pre-gyp ERR! install error
node-pre-gyp ERR! stack Error: The N-API version of this Node instance is 1. This module supports N-API version(s) 3. This Node instance cannot run this module.
node-pre-gyp ERR! stack at Object.module.exports.validate_package_json (/home/ubuntu/backend/node_modules/node-pre-gyp/lib/util/napi.js:82:9)
node-pre-gyp ERR! stack at validate_config (/home/ubuntu/backend/node_modules/node-pre-gyp/lib/util/versioning.js:229:10)
node-pre-gyp ERR! stack at Object.module.exports.evaluate (/home/ubuntu/backend/node_modules/node-pre-gyp/lib/util/versioning.js:279:5)
node-pre-gyp ERR! stack at install (/home/ubuntu/backend/node_modules/node-pre-gyp/lib/install.js:241:31)
node-pre-gyp ERR! stack at Object.self.commands.(anonymous function) [as install] (/home/ubuntu/backend/node_modules/node-pre-gyp/lib/node-pre-gyp.js:52:37)
node-pre-gyp ERR! stack at run (/home/ubuntu/backend/node_modules/node-pre-gyp/bin/node-pre-gyp:82:30)
node-pre-gyp ERR! stack at Object.<anonymous> (/home/ubuntu/backend/node_modules/node-pre-gyp/bin/node-pre-gyp:134:1)
node-pre-gyp ERR! stack at Module._compile (module.js:652:30)
node-pre-gyp ERR! stack at Object.Module._extensions..js (module.js:663:10)
node-pre-gyp ERR! stack at Module.load (module.js:565:32)
node-pre-gyp ERR! System Linux 4.15.0-1057-aws
node-pre-gyp ERR! command "/usr/bin/node" "/home/ubuntu/backend/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /home/ubuntu/backend/node_modules/bcrypt
node-pre-gyp ERR! node -v v8.10.0
node-pre-gyp ERR! node-pre-gyp -v v0.14.0
node-pre-gyp ERR! not ok
The N-API version of this Node instance is 1. This module supports N-API version(s) 3. This Node instance cannot run this module.
npm WARN optional Skipping failed optional dependency /chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: [email protected]
npm ERR! Linux 4.15.0-1057-aws
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "i" "bcrypt"
npm ERR! node v8.10.0
npm ERR! npm v3.5.2
npm ERR! code ELIFECYCLE
npm ERR! [email protected] install: `node-pre-gyp install --fallback-to-build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script 'node-pre-gyp install --fallback-to-build'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the bcrypt package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-pre-gyp install --fallback-to-build
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs bcrypt
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls bcrypt
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /home/ubuntu/backend/npm-debug.log
How can I install bcrypt on ec2 free tier?
I came across this, and my issue was using an older version of node (5.X), when a version >= 10 was required.
So the solution may be as simple as upgrading node/npm. You can easily do this using nvm, the "Node Version Manager"
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
Output
=> Close and reopen your terminal to start using nvm or run the following to use it now:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
As the output above says, you should either close and reopen the terminal or run the commands to add the path to nvm script to the current shell session. You can do whatever is easier for you.
After you've installed nvm
, you can install and use the specific version of node by simply running this command:
nvm install <version>
For example:
$ nvm install v10.16.3 // Thanks @Joe for your help :)
$ node --version
v10.16.3
After upgrading node to version > 10, you can install bcrypt
$ npm install bcrypt
Get this error message, or something similar:
$ npm install -g sqlite3
npm WARN prefer global [email protected] should be installed with -g
> [email protected] install /root/.nvm/node_modules/sqlite3
> node-pre-gyp install --fallback-to-build
node-pre-gyp WARN Using request for node-pre-gyp https download
node-pre-gyp ERR! install error
node-pre-gyp ERR! stack Error: The N-API version of this Node instance is 1. This module supports N-API version(s) 3. This Node instance cannot run this module.
curl -sL https://deb.nodesource.com/setup_current.x | sudo -E bash -
sudo apt-get install -y nodejs
Try again to install sqlite:
$ npm install -g sqlite3
added 120 packages, and audited 120 packages in 6s
2 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With