节点-v57-linux-x64 / grpc_node.node丢失

当按照以下步骤完成时:

https://firebase.google.com/docs/admin/setup

并部署到我的服务器,我得到这个错误:

2017-10-16 19:19:56 4199bf47fc2d ---> Starting app 2017-10-16 19:19:56 4199bf47fc2d Detected server.js file 2017-10-16 19:19:57 4199bf47fc2d module.js:529 2017-10-16 19:19:57 4199bf47fc2d throw err; 2017-10-16 19:19:57 4199bf47fc2d ^ 2017-10-16 19:19:57 4199bf47fc2d 2017-10-16 19:19:57 4199bf47fc2d Error: Cannot find module '/data/app/node_modules/firebase-admin/node_modules/grpc/src/node/extension_binary/node-v57-linux-x64/grpc_node.node' 2017-10-16 19:19:57 4199bf47fc2d at Function.Module._resolveFilename (module.js:527:15) 2017-10-16 19:19:57 4199bf47fc2d at Function.Module._load (module.js:476:23) 2017-10-16 19:19:57 4199bf47fc2d at Module.require (module.js:568:17) 2017-10-16 19:19:57 4199bf47fc2d at require (internal/module.js:11:18) 2017-10-16 19:19:57 4199bf47fc2d at Object.<anonymous> (/data/app/node_modules/firebase-admin/node_modules/grpc/src/node/src/grpc_extension.js:30:15) 2017-10-16 19:19:57 4199bf47fc2d at Module._compile (module.js:624:30) 2017-10-16 19:19:57 4199bf47fc2d at Object.Module._extensions..js (module.js:635:10) 2017-10-16 19:19:57 4199bf47fc2d at Module.load (module.js:545:32) 2017-10-16 19:19:57 4199bf47fc2d at tryModuleLoad (module.js:508:12) 2017-10-16 19:19:57 4199bf47fc2d at Function.Module._load (module.js:500:3) 

它被安装在一个新的文件夹,最新的npm和所有,删除node_modules映射重新安装,npm安装–unsafe-perm,npm重build等没有任何工作。 为什么不安装模块?

我刚刚遇到了同样的问题。 对我们来说,问题在于我们正在Mac上安装节点模块,并且firebase-admin的安装正在为该二进制文件放置一个特定于平台的文件。

运行安装并检查这个目录我看到这个:

 $ ls node_modules/firebase-admin/node_modules/grpc/src/node/extension_binary/ node-v48-darwin-x64 

但是运行lamba的环境正在寻找:

  node-v48-linux-x64 

一个简单的解决scheme是在与使用docker的lambda运行相同的环境中运行npm install。 在我们的例子中,我发现lambci项目已经为这个确切的用例预build了docker容器。 在这里我已经添加了一个npm脚本行来处理构build:

  "scripts": { "package": "rm -rf node_modules && docker run -v $PWD:/var/task -w /var/task lambci/lambda:build-nodejs6.10 npm install" },