Погуглил и прочитал документацию, и я не видел случая, чтобы кто-то делал экспортируемую конфигурацию. Мой вариант использования состоит в том, что у меня есть две разные границы ошибок, которые я определяю в своем приложении, и я хочу заключить их в границу ошибки bugsnag. Чтобы выполнить sh это, мне нужно сделать следующее:
UIErrorBoundary1.jsx
import React from 'react';
import Bugsnag from '@bugsnag/js';
import BugsnagPluginReact from '@bugsnag/plugin-react';
const bugsnagConfigOptions = {
apiKey: '...',
plugins: [new BugsnagPluginReact(React)],
...,
};
configOptions.user = {
...
};
Bugsnag.start(bugsnagConfigOptions);
const BugsnagErrorBoundary = Bugsnag.getPlugin('react');
class UIErrorBoundary1 extends React.Component {
render() {
<BugsnagErrorBoundary>
...
</BugsnagErrorBoundary>
}
}
UIErrorBoundary2.jsx
import React from 'react';
import Bugsnag from '@bugsnag/js';
import BugsnagPluginReact from '@bugsnag/plugin-react';
const bugsnagConfigOptions = {
apiKey: '...',
plugins: [new BugsnagPluginReact(React)],
...,
};
configOptions.user = {
...
};
Bugsnag.start(bugsnagConfigOptions);
const BugsnagErrorBoundary = Bugsnag.getPlugin('react');
class UIErrorBoundary2 extends React.Component {
render() {
<BugsnagErrorBoundary>
...
</BugsnagErrorBoundary>
}
}
Что я хотел бы сделать выглядит примерно так:
bugsnagsetup. js
import React from 'react';
import Bugsnag from '@bugsnag/js';
import BugsnagPluginReact from '@bugsnag/plugin-react';
const bugsnagConfigOptions = {
apiKey: '...',
plugins: [new BugsnagPluginReact(React)],
...,
};
configOptions.user = {
...
};
export const Bugsnag = Bugsnag.start(bugsnagConfigOptions);
export const BugsnagErrorBoundary = Bugsnag.getPlugin('react');
UIErrorBoundary1.jsx
import React from 'react';
import { BugsnagErrorBoundary } from 'bugsnagsetup';
class UIErrorBoundary1 extends React.Component {
render() {
<BugsnagErrorBoundary>
...
</BugsnagErrorBoundary>
}
}
UIErrorBoundary2.jsx
import React from 'react';
import { BugsnagErrorBoundary } from 'bugsnagsetup';
class UIErrorBoundary2 extends React.Component {
render() {
<BugsnagErrorBoundary>
...
</BugsnagErrorBoundary>
}
}
Это уменьшит дублирование кода и, возможно, предотвратит определение нескольких экземпляров Bugsnag (которые я не тестировал, но я надеюсь, что это не приведет к отправке нескольких ошибок Bugsnag, если bugsnag запущен в нескольких разных файлах).
Возможно ли это?