Error: bcrypt_lib.node is not a valid Win32 application

Error: bcrypt_lib.node is not a valid Win32 application

我的 windows 机器上有一个 nodejs 项目。在尝试 运行 项目时出现此错误涉及 bcrypt 和 win32。

[nodemon] 2.0.2 [nodemon] 随时重启,输入rs [nodemon] 观看目录:. [nodemon] 观看扩展:js,mjs,json [nodemon] 开始 node app.js internal/modules/cjs/loader.js:1003 return process.dlopen(模块,path.toNamespacedPath(文件名)); ^

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

如何解决有不同的可能性:

  • npm rebuild bcrypt --build-from-source(如评论中所述)检查您用于重新编译的节点版本是否与 test/production 版本
  • 匹配
  • npm install node-pre-gyp -g 然后 npm rebuild bcrypt --build-from-source
  • 删除项目文件夹 node_modules (..programs\server\node_modules) 内部署服务器上包含 npm-bcrypt 的文件夹。在部署服务器上,运行 npm install bcrypt

希望对你有帮助

我在我的 windows 环境中遇到这个错误:之前我是 运行 windows 子系统 linux 下的项目,一旦我需要调试它visual studio 代码,环境启动了 windows 版本的节点,这反过来想知道 bcrypt 库的非 win32 二进制文件。

删除 node_modules 然后重新安装它们 npm i 解决了问题。

我遇到了同样的问题。我能够 运行 我的项目通过以下方式更改我的代码:

发件人://import * as bcrypt from 'bcrypt';

收件人://import * as bcrypt from 'bcryptjs;

并安装依赖项:npm i bcryptjs --save

移除或删除 node_modules 并重新安装所有软件包。

我遇到了同样的问题;我使用带有 npm i bcrypt 的 WSL 子系统安装了 bcrypt,我假设安装了一个不与 Windows 啮合的架构特定版本。我在本地计算机的终端上安装了 nodemon 运行,当我尝试 运行 我的应用程序时,它一直在崩溃。

所以我删除了 node_modules 文件夹,然后在本地计算机的终端上使用 npm i 来安装软件包,它运行顺利!

(我的本地机器上有 nodemon,因为据说 mongod 不能很好地与 WSL 一起工作)

确保将节点路径添加到环境中。 在 WHM 服务器中对我来说:

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

当您将文件从一个操作系统交换到另一个操作系统时会发生此错误。例如,copy/move 项目文件从 MacOS 到 Windows 或 Linux。要修复它,请删除节点模块文件并进行清理 npm install