Vue CLI 3 с Sentry - Как использовать Vue config.errorHandler? - PullRequest
0 голосов
/ 14 ноября 2018

Как я могу использовать config.errorHandler * Vue в сочетании с Sentry для Vue ?

Я хочу отловить ошибки в дополнение к Sentry в приложении, но как только я реализую config.errorHandler, я перезаписываю реализацию Sentry.

main.js:

import * as Sentry from "@sentry/browser";

Sentry.init({
  dsn: "my dsn",
  integrations: [new Sentry.Integrations.Vue({ Vue })]
});

// This prevents sentry from being used
Vue.config.errorHandler = (msg, vm , info) => {
  alert(info)
}

1 Ответ

0 голосов
/ 14 ноября 2018

Когда Sentry перезаписывает Vue.config.errorHandler, он сохраняет ссылку на ранее объявленный errorHandler и вызывает ее после того, как Sentry обработал ошибку. источник

В этом случае объявление custom errorHandler должно быть сделано до того, как конструктор Vue будет передан new Sentry.Integrations.Vue({ Vue }).

Для приведенного выше примера кода простое переключение порядка пользовательских errorHandler и Sentry.init() должно решить проблему.

import * as Sentry from "@sentry/browser";    

Vue.config.errorHandler = (msg, vm , info) => {
  alert(info)
}

Sentry.init({
  dsn: "my dsn",
  integrations: [new Sentry.Integrations.Vue({ Vue })]
});
...