缺少node-v59-linux-x64 / grpc_node.node

时间:2017-11-16 19:09:01

标签: node.js firebase github npm grpc

我正在尝试在我的服务器中使用Firebase管理员SDK。当我部署时,我得到错误,我在firebase-admin node_module map中缺少文件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。

我如何/在哪里下载该文件?有没有人可以把文件放在这里,所以我可以手动添加它?

  

错误:找不到模块   ' /data/app/node_modules/grpc/src/node/extension_binary/node-v59-linux-x64/grpc_node.node'

3 个答案:

答案 0 :(得分:5)

这种问题通常是由于在一个系统上安装库,然后在需要不同二进制文件的其他系统上部署和运行它而引起的。

解决此问题的最简单方法是在部署的系统上部署后运行npm rebuild

或者,如果npm rebuild不是选项,则可以通过运行带有一些额外选项的npm install来为要部署的系统预安装二进制文件。 --target参数允许您安装不同版本的Node。 --target=9.0.0的参数为节点9安装二进制文件(只有主要版本必须匹配)。 --target_platform参数允许您为特定操作系统安装:windowslinuxdarwin(Mac)。 --target_arch参数允许您安装其他处理器体系结构:ia32x64arm。最后,--target_libc参数允许您选择为不同的libc构建的二进制文件:glibcmusl(对于Alpine Linux)。

因此,在您的情况下,您应该能够通过运行

来获取该二进制文件
npm install --target=9.0.0 --target_platform=linux --target_arch=x64

答案 1 :(得分:1)

答案 2 :(得分:0)

根据@ murgatroid99的回答,这对我而言很有帮助:

npm rebuild --target=8.1.0 --target_platform=linux --target_arch=x64 --target_libc=glibc --update-binary

它将所需的二进制文件下载到您的node_modules/grpc目录中。

我在开发机器上运行macOS X,并且正在部署到AWS Lambda;这将同时安装两个运行时版本,这意味着我可以在本地进行开发和测试,然后再部署到Lambda。