这个问题让我发疯了,它给我带来了很多时间。
我的Meteor应用程序在我的本地开发计算机上运行良好,但当我使用BUILD_PACK = https://github.com/oortcloud/heroku-buildpack-meteorite.git进行部署时,我遇到了一个问题仅使用Firefox,这给我一个通用错误
"Exception from Deps afterFlush function function: "
...但我无法查看调用堆栈或生成的位置。
我检查构建包和本地开发机器使用相同的node.js版本(v0.10.26),显然在本地使用Meteor集成的MongoDB和heroku使用Mongolab服务。
我不知道如何找到问题。
在heroku构建版本上,Chrome就像魅力一样, Firefox有问题。 在本地计算机上, Chrome和Firefox都可以正常运行。
我也尝试过demeteorize,但问题是一样的......
编辑:
Firefox调试控制台错误在第1行(43c9ee3da328e93321624a3179d27858c654879d.js:1)
如何在没有js minify的情况下在heroku上部署?
EDIT2:
我已部署在* .metor.com上,工作良好! (有和没有--debug标志) 问题/错误是heroku和/或build pack ......但是在哪里?!?
解决方案:
我犯了一个大错。从外部库抛出错误。这个库只在firefox上提供这个问题。
Firefox控制台调试日志不报告库错误,因为对此API库的调用是在观察者方法中完成的。
heroku和本地开发机器都存在这个问题......我感觉非常愚蠢
感谢你的支持广告时间!
答案 0 :(得分:1)
此错误来自您的客户端代码,其部署方式不可能更改它(Demeteorizer,改为使用meteor部署等)
这些错误通常来自您在尚未准备好的情况下读取数据。在你的本地主机上,延迟是如此之低,通常数据立即就绪,你不会注意到这个问题。
这是可能导致此类问题的代码示例:
var firstname = People.findOne().name;
这里的假设是人员收集准备就绪。如果未就绪People.findOne()
返回null
并且正在查找.name
,则会在加载页面时抛出错误。
要解决此问题,您必须找到您使用上述代码的位置(显然您的代码和结构会有所不同)并检查集合是否已准备就绪,或者搜索的结果是否实际存在。
同样,这只是错误最有可能发生的地方。还有很多其他原因可能导致错误。 Firefox的调试控制台并不具有描述性,因为Chrome很难调试。
它甚至可能是第三方依赖没有加载,你试图在模板助手的某个地方使用它。