我的托管服务(渲染)突然返回“服务器不健康,以状态 1 退出”,我不知道该怎么办。
Nov 29 03:45:37 PM │ ✖ Nuxt Fatal Error │
Nov 29 03:45:37 PM │ │
Nov 29 03:45:37 PM │ Error: Failed to load gRPC binary module because it was not installed for the │
Nov 29 03:45:37 PM │ current system │
Nov 29 03:45:37 PM │ Expected directory: node-v83-linux-x64-glibc │
Nov 29 03:45:37 PM │ Found: [node-v64-linux-x64-glibc] │
Nov 29 03:45:37 PM │ This problem can often be fixed by running "npm rebuild" on the current system
我尝试在 shell 中运行建议的 npm 重建,但没有成功。非常感谢您的帮助。是因为该项目使用的节点版本过时吗?如果是这样,让这个项目在这个版本上运行会有问题吗?
该错误消息意味着安装的 gRPC 二进制包版本与其运行的系统不匹配。特别是,您的特定错误意味着该软件包是与 Node 10 一起安装的,但您的代码在 Node 14 上运行。通常,可以通过在运行代码的系统上运行
npm rebuild
来纠正这一问题,但如果不是,您可以使用 npm rebuild --target=14.0.0
为您的目标系统显式安装,或者如果这不起作用,则 npm install --target=14.0.0
。
请注意,
grpc
包已被弃用。如果可能的话,建议您切换到@grpc/grpc-js
包,它不会出现这样的问题。
运行
npm rebuild
应重新编译并重建任何本机二进制依赖项以匹配您当前的 Node.js 版本(在本例中为 Node.js 14),从而可能解决版本不匹配问题。
请注意,在某些情况下运行
npm rebuild
可能需要管理权限,因此如果遇到权限问题,您可能需要在类 Unix 系统上使用 sudo npm rebuild
。