0

我正在尝试为 react-native 应用程序实现 raygun。我遇到了开玩笑的问题,鉴于窗口不存在,我不确定最佳方法。在我的 package.json 中,我已经添加了以下内容:

"globals": {
  "window": {}
}

虽然我收到以下错误,但我无法解决它:

ReferenceError: raygunUtilityFactory is not defined

根据文档,这是一个非常基本的实现: https ://raygun.com/docs/languages/javascript#reactnative

我认为这是开玩笑的事情,但在 github、here 和 google 上搜索后,我仍然无法解决这个问题。

4

1 回答 1

1

Raygun4JS 目前无法在非浏览器环境中正常工作。最好的办法是不要在测试环境中包含 Raygun4JS 代码(这是我们在 Raygun 所做的),但使用 NPM 的 UMD 模块会稍微复杂一些(我们使用片段方法动态注入它)。

我认为问题源于window在 Jest 与浏览器中没有被视为全局对象,我们间接调用了 window 对象来调用raygunUtilityFactory. 你用的是jsdom测试环境吗?我们在 jestconfig.json 中也有相同的window定义,并将一些变量导出到window我们的 setupframework.js 文件中,这些变量通过全局对象间接访问,并且看起来工作正常。

于 2018-06-20T20:20:10.240 回答