是否可以使用源映射通过NativeScript生成可用的堆栈跟踪(例如Crashlytics)

时间:2019-05-22 09:54:41

标签: javascript nativescript crashlytics source-maps

我使用Crashlytics监视应用程序中的崩溃,包括JavaScript错误。但是在发行版中,我返回的堆栈跟踪不可用(仅关于bundle.js的信息)。

这是针对NativeScript应用程序的。当前,我捕获了JS错误以在Crashlytics中将其发送,但是这些错误是这样的(因为我使用了--bundle --env.uglify):

at e.crash (file:///data/data/com.appwhite.android/files/app/bundle.js:1:36166)
at Object.handleEvent (file:///data/data/com.appwhite.android/files/app/bundle.js:1:39772)
at handleEvent (file:///data/data/com.appwhite.android/files/app/vendor.js:1:221997)

我想让原始文件可读的堆栈跟踪:

at HomeComponent.crash (file:///data/data/com.appwhite.android/files/app/app/main/home/home.component.js:99:16)
at Object.eval [as handleEvent] (ng:///AppModule/HomeComponent.ngfactory.js:13:27)
at handleEvent (file:///data/data/com.appwhite.android/files/app/tns_modules/@angular/core/bundles/core.umd.js:21694:45)

1 个答案:

答案 0 :(得分:0)

我建议您看看以下主题:https://github.com/NativeScript/nativescript-dev-webpack/pull/854#issuecomment-490090453

简而言之,您可以使用--env.hiddenSourceMap并在本机应用程序之外的某个位置生成外部源映射,以避免由于源映射而增加应用程序的大小。然后,您可以使用这些隐藏的源映射并使用https://sourcemaps.info/

之类的工具转换堆栈跟踪