生产服务器上的 ELF Header 无效

Invalid ELF Header on Production Server

有谁知道为什么这个错误只发生在生产服务器上,而不是当我 运行 在本地发生时?

internal/modules/cjs/loader.js:815
      return process.dlopen(module, path.toNamespacedPath(filename));
                     ^
    
    Error: /var/www/vhosts/user9568/**SITE_NAME**/node_modules/bcrypt/lib/binding/napi-v3/bcrypt_lib.node: invalid ELF header
        at Object.Module._extensions..node (internal/modules/cjs/loader.js:815:18)
        at Module.load (internal/modules/cjs/loader.js:641:32)
        at Function.Module._load (internal/modules/cjs/loader.js:556:12)
        at Module.require (internal/modules/cjs/loader.js:681:19)
        at Module.require (/usr/share/passenger/helper-scripts/node-loader.js:80:25)
        at require (internal/modules/cjs/helpers.js:16:16)
        at Object.<anonymous> (/var/www/vhosts/user9568/**SITE_NAME**/node_modules/bcrypt/bcrypt.js:6:16)
        at Module._compile (internal/modules/cjs/loader.js:774:30)
        at Object.Module._extensions..js (internal/modules/cjs/loader.js:785:10)
        at Module.load (internal/modules/cjs/loader.js:641:32)

直播服务器使用Plesk。如果有任何建议,我将不胜感激。

另外,请注意 * * SITE_NAME * * 是站点的域名,出于显而易见的原因,我不想将其包含在此 post 中。

Picture of Error

你用Docker吗?如果是,Stack Overflow 上的 可能已经给了你答案。

TLDR:.dockerignore 文件应包含您的 node_modules 文件夹。

我找到了答案,因为我在 Windows 机器上安装了 bcrypt,但是生产服务器是 运行 Linux 意味着它没有正确的文件可以使用.

我通过在 Linux 机器上安装 bcrypt 然后将其上传到托管服务器来修复它。