Экспорт / Вход в службу отслеживания ошибок

Есть ли способ получить экспорт состояния / действий магазина программно в Production, которые можно было бы импортировать обратно в инструменты разработки?

Например, я могу настроить промежуточное ПО для захвата текущего состояния и отправки его в нечто вроде (Trackjs,Sentry, Rollbar), но в нем отсутствуют все предыдущие состояния и действия.

Я хотел бы сделать снимок в том же формате, что и экспорт из Redux Dev Tools.

Пример экспорта из Dev Tools

 {"monitorState":{},"actionsById":{"0":{"type":"PERFORM_ACTION","action":{"type":"@@INIT"},"timestamp":1471017239656},"1":{"type":"PERFORM_ACTION","action":{"type":"INCREMENT"},"timestamp":1471017242004}},"nextActionId":2,"stagedActionIds":[0,1],"skippedActionIds":[],"committedState":5,"currentStateIndex":1,"computedStates":[{"state":5},{"state":6}]}

2 ответа

Решение

В данный момент он находится в разработке, но теперь вы можете добавить историю действий прямо в расширение, см. https://github.com/zalmoxisus/remotedev-server/pull/20

Другой вариант - сохранить действия в файл JSON в виде массива и импортировать их обратно.

Это возможно с https://github.com/zalmoxisus/redux-devtools-extension/issues/173

logger.js

let actions = []
export function logActions (stateSanitizer) {
  return store => next => action => {
    actions.push(action)
    return next(action)
  }
}

Эти действия могут быть сохранены в файл или базу данных и могут быть импортированы обратно в инструменты разработчика.

Примеры действий

[{
    "type": "INCREMENT"
  }, {
    "type": "DECREMENT"
  }, {
    "type": "DECREMENT"
  }, {
    "type": "DECREMENT"
  }, {
    "type": "DECREMENT"
  }]

Я создал этот репозиторий, который демонстрирует это в действии. https://github.com/timarney/redux-trackjs-logger он использует промежуточное ПО для регистрации действий при возникновении ошибки.

Я поддерживаю промежуточное ПО Redux под названием Raven for Redux, которое присоединяет данные Redux к отчетам об ошибках Sentry. В настоящее время он добавляет следующий контекст к каждому отчету об ошибках:

  1. Законченный государственный объект.
  2. Завершите последний объект действия.
  3. type всех действий, которые приводят к текущему состоянию. Они добавляются как "панировочные сухари".

Блог Sentry содержит описание, описывающее его более подробно: https://blog.sentry.io/2016/08/24/redux-middleware-error-logging.html

Вы можете найти промежуточное ПО в качестве пакета NPM здесь: https://github.com/captbaritone/raven-for-redux

Другие вопросы по тегам