【问题标题】:node-v59-linux-x64/grpc_node.node is missingnode-v59-linux-x64/grpc_node.node 丢失
【发布时间】:2017-11-16 19:09:00
【问题描述】:

我正在尝试在我的服务器中使用 Firebase 管理 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。

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

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

【问题讨论】:

    标签: node.js firebase github npm grpc


    【解决方案1】:

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

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

    或者,如果npm rebuild 不是一个选项,您可以通过运行带有一些额外选项的npm install 为您正在部署的系统预安装二进制文件。 --target 参数允许您为不同版本的 Node.js 安装。 --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
    

    【讨论】:

    • 我收到了类似的错误消息Error: Cannot find module 'project/node_modules/grpc/src/node/extension_binary/node-v59-linux-x64-glibc/grpc_node.node' 我没有移动代码,但我想我最近升级了一个主要版本的节点(8 => 9)。 npm rebuild 成功了。谢谢。
    【解决方案2】:

    【讨论】:

    • 我应该把这个文件复制到哪里?
    【解决方案3】:

    根据@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。

    【讨论】:

      猜你喜欢
      • 2018-03-28
      • 2018-11-01
      • 1970-01-01
      • 2020-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-22
      相关资源
      最近更新 更多