Mayyar Al-Atari
Mayyar Al-Atari

Reputation: 199

Error: bcrypt_lib.node is not a valid Win32 application

I have a nodejs project on my windows machine. Where upon attempting to run the project this error appears involving bcrypt and win32.

[nodemon] 2.0.2 [nodemon] to restart at any time, enter rs [nodemon] watching dir(s): . [nodemon] watching extensions: js,mjs,json [nodemon] starting node app.js internal/modules/cjs/loader.js:1003 return process.dlopen(module, path.toNamespacedPath(filename)); ^

Error: \\?\C:\Users\owner\desktop\msci444\no-scraps\node_modules\bcrypt\lib\binding\napi-v3\bcrypt_lib.node is not a valid Win32 application.
\\?\C:\Users\owner\desktop\msci444\no-scraps\node_modules\bcrypt\lib\binding\napi-v3\bcrypt_lib.node
    at Object.Module._extensions..node (internal/modules/cjs/loader.js:1003:18)
    at Module.load (internal/modules/cjs/loader.js:812:32)
    at Function.Module._load (internal/modules/cjs/loader.js:724:14)
    at Module.require (internal/modules/cjs/loader.js:849:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at Object.<anonymous> (C:\Users\owner\desktop\msci444\no-scraps\node_modules\bcrypt\bcrypt.js:6:16)
    at Module._compile (internal/modules/cjs/loader.js:956:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:973:10)
    at Module.load (internal/modules/cjs/loader.js:812:32)
    at Function.Module._load (internal/modules/cjs/loader.js:724:14)
[nodemon] app crashed - waiting for file changes before starting...

pt

Upvotes: 13

Views: 30855

Answers (9)

Aishwarya
Aishwarya

Reputation: 11

I faced the same issue; I installed bcrypt using the WSL subsystem with npm i bcrypt which I assume installs an architecturally specific version which doesn't mesh with Windows. I had nodemon running on my local machine's terminal and when I tried running my app, it kept crashing.

So I deleted the node_modules folder and then used npm i on my local machine's terminal instead to install the packages and it worked without a hitch!

Upvotes: 1

Lojith Vinsuka
Lojith Vinsuka

Reputation: 1051

Try these steps;

Step 1: Expand node_modules

Step : Delete bcrypt package

Step 3: Run npm install or yarn install

Step 4: Restart server

Upvotes: 1

Kipruto
Kipruto

Reputation: 857

This error occurs when you swap files from one operating system to another. Eg copy/move project files from MacOS to Windows or Linux. To fix it delete the node modules files and do a clean npm install

Upvotes: 2

alirezacode
alirezacode

Reputation: 158

Ensure to add node path to environments. for me in WHM server:

export PATH=$PATH:/opt/cpanel/ea-nodejs10/bin/

Upvotes: 0

DeviousLab
DeviousLab

Reputation: 17

I faced the same issue; I installed bcrypt using the WSL subsystem with npm i bcrypt which I assume installs an architecturally specific version which doesn't mesh with Windows. I had nodemon running on my local machine's terminal and when I tried running my app, it kept crashing.

So I deleted the node_modules folder and then used npm i on my local machine's terminal instead to install the packages and it worked without a hitch!

(I have nodemon on my local machine because supposedly mongod doesn't work well with WSL)

Upvotes: 0

Don Banks
Don Banks

Reputation: 21

Remove or delete node_modules and reinstall all packages.

Upvotes: 2

Giovani
Giovani

Reputation: 175

I was experiencing the same problem. I was able to run my project changing my code in the following way:

From: //import * as bcrypt from 'bcrypt';

To: //import * as bcrypt from 'bcryptjs;

and installing dependencies: npm i bcryptjs --save

Upvotes: 1

arthur
arthur

Reputation: 1064

I was getting this error in my windows environment: previously I was running the project under windows subsystem linux, and once I needed to debug it in visual studio code, the environment started the windows version of node, which in turn was wondering about non win32 binaries of bcrypt library.

Removing the node_modules and then reinstalling them npm i solved the issue.

Upvotes: 12

Codebreaker007
Codebreaker007

Reputation: 2989

There are different possibilities how to resolve:

  • npm rebuild bcrypt --build-from-source (as stated in the comments already) check that your node version for recompiling matches the test/production version
  • npm install node-pre-gyp -g then npm rebuild bcrypt --build-from-source
  • Delete the folder containing npm-bcrypt on the deployment server inside your project folder node_modules (..programs\server\node_modules). On the deployment server, run npm install bcrypt

Hope one helpsyou

Upvotes: 28

Related Questions