Published on

Error: The module was compiled against a different Node.js version. Please try re-compiling or re-installing the module

Authors

Last Modified : Wednesday, Aug 21, 2024

Error

Error: The module '/home/ubuntu/node_modules/bcrypt/lib/binding/bcrypt_lib.node' was compiled against a different Node.js version using NODE_MODULE_VERSION 93. This version of Node.js requires NODE_MODULE_VERSION 108. Please try re-compiling or re-installing the module (for instance, using 'npm rebuild' or 'npm install'). at Module._extensions..node (node:internal/modules/cjs/loader:1460:18) at Module. load (node: internal/modules/cjs/loader:1203:32) at Module._load (node:internal/modules/cjs/loader:1019:12) at Module.require (node:internal/modules/cjs/loader:1231:19) at Hook._require.Module.require (/usr/lib/node_modules/pm2/node_modules/require-in-the-middle/index.js:101:39) at require (node: internal/modules/helpers:177:18) Object. <anonymous> Module._compile (/home/ubuntu/node_modules/bcrypt/bcrypt.js:6:16) (node:internal/modules/cjs/loader:1364:14) at Module._extensions..js (node:internal/modules/cjs/loader:1422:10) at Module.load (node:internal/modules/cjs/loader: 1203:32) Module._load (node:internal/modules/cjs/loader:1019:12) Module.require (node:internal/modules/cjs/loader:1231:19) at Hook._require.Module.require (/usr/lib/node_modules/pm2/node_modules/require-in-the-middle/index.js:101:39) at require (node: internal/modules/helpers:177:18) Object. <anonymous> (/home/ubuntu/server/controller/api/forgotPasswordAPI.js:3:16) Module._compile (node:internal/modules/cjs/loader: 1364:14) at Module._extensions..js (node:internal/modules/cjs/loader:1422:10) at Module.load (node:internal/modules/cjs/loader: 1203:32) at Module._load (node:internal/modules/cjs/loader:1019:12) Modue regunre node.internal modules/ens/ozder.1231.191 at Hook._require.Module.require (/usr/Lib/node_modules/pm2/node_modules/require-in-the-middle/index.js:101:39) at require node internal modiles he ners: 177-18) at requireDir (/home/ubuntu/node_modules/require-dir/index.js:123:33) Object, ‹anonymous> (/home/ubuntu/server/routes.js:2:19) Module._compile (node:internal/modules/cjs/loader:1364:14) at Module._extensions..j (node:internal/modules/cjs/loader: 1422:10) at Module.load (node:internal/modules/cjs/loader: 1203:32) at Module._load (node: internal/modules/cjs/loader:1019:12) { code: 'ERR_DLOPEN_FAILED'

Why did this error occured?

Each javascript modules are build for range of node versions. Some times an older javascript module doesn't support newer node versions or new a javascript module doesn't support old node version.

This is what happened in above error.

bcrypt module was compiled i.e. installed with node version 16, but that perticular bcrypt module requires node version to be higher than version 16.

Solve

To solve this error first check which version of node you have installed, and which version of node is recommended for that javascript module.

# to see node js version
node -v

Head over to npm registry to to check which node version is recommended. For eg, for bcrypt recommended node version can be found here, https://www.npmjs.com/package/bcrypt

Make sure that you have installed the proper node verison.


node

javascript

linux

npm