错误:bcrypt_lib.node 不是有效的 Win32 应用程序

jav*_*ner 3 javascript windows bcrypt win32-process node.js

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

[nodemon] 2.0.2 [nodemon] 随时重启,输入rs [nodemon] watch dir(s): [nodemon] 看扩展:js,mjs,json [nodemon] 开始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...
Run Code Online (Sandbox Code Playgroud)

Cod*_*007 9

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

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

希望对你有帮助


art*_*hur 6

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

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