Bcrypt 文件太短
Bcrypt file too short
我遇到了一个导致我的 nodejs 应用程序崩溃的错误。错误如下:
'
Error: /home/*******/nodevenv/******/12/lib/node_modules/bcrypt/lib/binding/napi-v3/bcrypt_lib.node: file too short
at Object.Module._extensions..node (internal/modules/cjs/loader.js:1057:18)
at Module.load (internal/modules/cjs/loader.js:863:32)
at Function.Module._load (internal/modules/cjs/loader.js:708:14)
at Module.require (internal/modules/cjs/loader.js:887:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object.<anonymous> (/home/outdoor1/nodevenv/prescription_server/12/lib/node_modules/bcrypt/bcrypt.js:6:16)
at Module._compile (internal/modules/cjs/loader.js:999:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
at Module.load (internal/modules/cjs/loader.js:863:32)
at Function.Module._load (internal/modules/cjs/loader.js:708:14)
internal/modules/cjs/loader.js:1057
return process.dlopen(module, path.toNamespacedPath(filename));
该应用程序托管在基于 CPanel 的共享主机上。该应用程序 运行 6 个月没有错误。但是有 2 天申请没有 运行。我重新安装了 bcrypt。但是什么都没有改变。该应用程序在我的本地电脑上运行良好。
您的 bcrypt 二进制文件似乎已损坏。
您尝试重新安装 bcrypt 的结果是什么?哪里有错误?
https://github.com/kelektiv/node.bcrypt.js 的 bcrypt 存储库指出它仅适用于大于 >= 10.0.0 的“稳定”版本的 NodeJS,更重要的是,需要在安装时在主机平台上重新编译。如果您的主机没有安装完整的构建环境,您将无法在本地编译此模块。
假设您 运行 正在使用正确版本的 NodeJS,您可以尝试将 repo 直接检索到您的主机,cd 到它的目录,然后 运行 npm install
进行安装它的要求。其中最主要的是 node-pre-gyp,它有助于简化本机节点模块的编译。
完成此操作后,您应该能够 运行 bcrypt 本身的安装命令,如存储库 package.json 文件中所述:node-pre-gyp install --fallback-to-build
。 (请注意,根据您的主机配置方式,您可能需要在该命令的开头添加 npx
以正确调用 node-pre-gyp
,例如 npx node-pre-gyp install --fallback-to-build
)
注意由此引发的任何错误,并在此处分享它们作为对您的问题的更新。我猜是编译过程中安装失败,你错过了相关的错误信息。
抛开其他一切,我也会请求 CPanel 支持,因为我确信这不是一个独特的问题。
我遇到了一个导致我的 nodejs 应用程序崩溃的错误。错误如下: '
Error: /home/*******/nodevenv/******/12/lib/node_modules/bcrypt/lib/binding/napi-v3/bcrypt_lib.node: file too short
at Object.Module._extensions..node (internal/modules/cjs/loader.js:1057:18)
at Module.load (internal/modules/cjs/loader.js:863:32)
at Function.Module._load (internal/modules/cjs/loader.js:708:14)
at Module.require (internal/modules/cjs/loader.js:887:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object.<anonymous> (/home/outdoor1/nodevenv/prescription_server/12/lib/node_modules/bcrypt/bcrypt.js:6:16)
at Module._compile (internal/modules/cjs/loader.js:999:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
at Module.load (internal/modules/cjs/loader.js:863:32)
at Function.Module._load (internal/modules/cjs/loader.js:708:14)
internal/modules/cjs/loader.js:1057
return process.dlopen(module, path.toNamespacedPath(filename));
该应用程序托管在基于 CPanel 的共享主机上。该应用程序 运行 6 个月没有错误。但是有 2 天申请没有 运行。我重新安装了 bcrypt。但是什么都没有改变。该应用程序在我的本地电脑上运行良好。
您的 bcrypt 二进制文件似乎已损坏。
您尝试重新安装 bcrypt 的结果是什么?哪里有错误?
https://github.com/kelektiv/node.bcrypt.js 的 bcrypt 存储库指出它仅适用于大于 >= 10.0.0 的“稳定”版本的 NodeJS,更重要的是,需要在安装时在主机平台上重新编译。如果您的主机没有安装完整的构建环境,您将无法在本地编译此模块。
假设您 运行 正在使用正确版本的 NodeJS,您可以尝试将 repo 直接检索到您的主机,cd 到它的目录,然后 运行 npm install
进行安装它的要求。其中最主要的是 node-pre-gyp,它有助于简化本机节点模块的编译。
完成此操作后,您应该能够 运行 bcrypt 本身的安装命令,如存储库 package.json 文件中所述:node-pre-gyp install --fallback-to-build
。 (请注意,根据您的主机配置方式,您可能需要在该命令的开头添加 npx
以正确调用 node-pre-gyp
,例如 npx node-pre-gyp install --fallback-to-build
)
注意由此引发的任何错误,并在此处分享它们作为对您的问题的更新。我猜是编译过程中安装失败,你错过了相关的错误信息。
抛开其他一切,我也会请求 CPanel 支持,因为我确信这不是一个独特的问题。