我正在尝试在我的服务器中使用 Firebase admin SDK。部署时出现错误,我在 firebase-admin node_module 映射中缺少文件 node-v59-linux-x64/grpc_node.node。我在我的包中添加了“grpc”:“1.7.1”,但在 NPM 更新后我仍然没有得到那个文件。我得到一个旧版本,node-v57。我还检查了这条路径 https://registry.npmjs.org/grpc/-/grpc-1.7.1.tgz ,但我找不到该文件。我删除了我的 node_modules 映射并再次运行 npm install,仍然没有 node-v59。
我如何/在哪里可以下载该文件?有没有人可以把文件放在这里,这样我就可以手动添加了?
Error: Cannot find module '/data/app/node_modules/grpc/src/node/extension_binary/node-v59-linux-x64/grpc_node.node'
最佳答案
这种问题通常是由于在一个系统上安装库,然后在需要不同二进制文件的不同系统上部署和运行它引起的。
解决此问题的最简单方法是在部署后在您部署的系统上运行 npm rebuild
。
或者,如果 npm rebuild
不是一个选项,您可以通过运行带有一些额外选项的 npm install
为您正在部署的系统预安装二进制文件。 --target
参数允许您安装不同版本的 Node。 --target=9.0.0
的参数安装 Node 9 的二进制文件(只有主要版本必须匹配)。 --target_platform
参数允许您为特定操作系统安装:windows
、linux
或 darwin
(苹果)。 --target_arch
参数允许您安装不同的处理器架构:ia32
、x64
或 arm
。最后,--target_libc
参数允许您选择为不同的 libc 构建的二进制文件:glibc
或 musl
(对于 Alpine Linux)。
因此,在您的情况下,您应该能够通过运行来获取该二进制文件
npm install --target=9.0.0 --target_platform=linux --target_arch=x64
关于node.js - 缺少 node-v59-linux-x64/grpc_node.node,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47337351/