【问题标题】:Error: bcrypt_lib.node is not a valid Win32 application错误:bcrypt_lib.node 不是有效的 Win32 应用程序
【发布时间】:2020-07-12 16:35:25
【问题描述】:

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

[nodemon] 2.0.2 【nodemon】随时重启,输入rs [nodemon] 监视目录:. [nodemon] 看扩展:js,mjs,json [nodemon] 开始node app.js 内部/模块/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

【问题讨论】:

标签: javascript node.js windows bcrypt win32-process


【解决方案1】:

当您将文件从一个操作系统交换到另一个时,会发生此错误。例如,将项目文件从 MacOS 复制/移动到 Windows 或 Linux。要修复它删除节点模块文件并做一个干净的npm install

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

      (我的本地机器上有 nodemon,因为据说 mongod 不能很好地与 WSL 配合使用)

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          【解决方案5】:

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

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

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

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

          【讨论】:

          • bcryptjs 自 2017 年以来未收到更新。我不建议使用它。
          【解决方案6】:

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

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

          【讨论】:

            【解决方案7】:

            有不同的解决方法:

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

            希望能帮到你

            【讨论】:

              猜你喜欢
              • 2023-02-24
              • 2016-01-13
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-01-07
              • 1970-01-01
              • 1970-01-01
              • 2015-02-26
              相关资源
              最近更新 更多