2017-10-16 51 views
1

以下时正好下列步骤操作:节点-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重建等没有工作。为什么不安装模块?

回答

3

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

运行安装此目录检查后,我看到这一点:

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

但在运行兰巴环境正在寻找:

node-v48-linux-x64 

一个简单的方法是运行故宫安装在使用docker运行lambda的环境中。在我们的例子中,我发现lambci项目已经为这个确切的用例预建了docker容器。在这里,我增加了一个NPM脚本行来处理构建:

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

我真的越来越frustated><我不喜欢NPM和Git,因为一切都需要在终端再用要做到没有UI。我在一个随机的谷歌文档网站上的某个地方找到文件后,我终于解决了这个问题。我添加了该文件并进行了更新。我想你的答案也会起作用。 – NoKey

+0

它不适合我!我仍然得到'无法找到模块'/ tmp/fbfn_284TLWMJRfpLbZI/node_modules/firebase-admin/node_modules/grpc/src/node/extension_binary/node-v57-linux-x64/grpc_node.node'如果有人正在将docker卷挂载到容器,而不是将容器安装在如下容器中:'docker run -it -v /var/run/docker.sock:/var/run/docker.sock -v/usr/bin/docker:/ usr/bin/docker ubuntu:最新的bash“,那么他们必须在'$ PWD'的地方给主机文件路径,因为docker是从主机而不是容器运行的。 – Phani