node.js - Firebase 云函数突然返回@grpc 模块错误
问题描述
我发现 Firebase Cloud Functions 非常不可靠。
发生了什么:
我有一个按预期工作的功能(功能 A),已经部署并且没问题。当我正在构建另一个与 A 无关的(函数 B)时,云函数日志开始报告以下错误:
Error: Cannot find module '@grpc/grpc-js'
at Function.Module._resolveFilename (module.js:548:15)
at Function.Module._load (module.js:475:25)
at Module.require (module.js:597:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/srv/node_modules/google-gax/build/src/grpc.js:37:14)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
也许我搞砸了。所以我删除了功能 B 并再次部署。错误仍然不断出现,功能 A 不再工作。
我如何尝试解决:
- 删除 node_modules 文件夹并
npm install
再次运行。 - 再次安装 grpc 模块
npm install --save grpc
。
什么都没有解决问题。关于我做错了什么的任何想法?以及如何避免这种情况再次发生?
提前感谢您的帮助!
解决方案
我无法弄清楚这种行为的原因。
但是,按照 Paul Kinlan 的建议,错误消失了(功能没有任何变化)。
npm install
npm rebuild --build-from-source google-cloud
根据 Doug 在我的问题中的评论,我还执行了一个npm update
以确保我拥有所有最新的软件包。
如果有人找出此错误的原因,请记下,以便我们将来避免它。
推荐阅读
- apache-pig - 需要在 PIG 中以特定格式将 chararray 转换为 datetime
- batch-file - 批处理 - 检查目录是否不存在不起作用
- ruby-on-rails - 将数据从视图发送到控制器 AJAX
- typo3 - TYPO3 流体中的 f:link 和 f:uri ViewHelpers 有什么区别
- c# - switch 语句是如何执行的?
- android - 剪辑标签不适用于drawable中的角
- java - 如何获得对`Class的引用
` 具有特定类型参数的泛型类的对象? - sql-server - 如何根据sql server中的特定coulmn从查询中删除重复项
- mysql - 获取层次结构数据nodejs - sequelizejs - mysql
- docker - Docker - 无法在卷内的容器之间共享数据(docker-compose 3)