https://github.com/elmassimo/vite-plugin-bugsnag
Report builds and upload source maps to Bugsnag
https://github.com/elmassimo/vite-plugin-bugsnag
bugsnag sourcemaps vite-plugin vitejs
Last synced: 10 months ago
JSON representation
Report builds and upload source maps to Bugsnag
- Host: GitHub
- URL: https://github.com/elmassimo/vite-plugin-bugsnag
- Owner: ElMassimo
- License: mit
- Created: 2021-04-22T17:37:22.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2024-01-04T15:28:04.000Z (about 2 years ago)
- Last Synced: 2025-04-05T00:42:36.507Z (10 months ago)
- Topics: bugsnag, sourcemaps, vite-plugin, vitejs
- Language: TypeScript
- Homepage:
- Size: 522 KB
- Stars: 21
- Watchers: 2
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
- Support: .github/support.md
Awesome Lists containing this project
README
vite-plugin-bugsnag
Report builds and upload source maps to bugsnag
[vite-plugin-bugsnag]: https://github.com/ElMassimo/vite-plugin-bugsnag
[migration]: https://vite-ruby.netlify.app/guide/migration.html#migrating-to-vite
[vite.js]: http://vitejs.dev/
[Bugsnag]: http://bugsnag.com/
[webpack-bugsnag-plugins]: https://github.com/bugsnag/webpack-bugsnag-plugins
[sourcemap]: https://vitejs.dev/config/#build-sourcemap
[Vite Ruby]: https://vite-ruby.netlify.app/config/#source-maps-%F0%9F%97%BA
## Why? 🤔
There is no official plugin from [Bugsnag] for [Vite.js].
This plugin provides the same functionality as [webpack-bugsnag-plugins] in [Vite.js].
The API is similar to simplify the [migration] when moving away from Webpack.
## Features ⚡️
- 🔒 Written in TypeScript
- 🚀 Quick setup with Vite plugins
- 📖 Config options are fully documented in JSDoc
## Installation 💿
Install the package as a development dependency:
```bash
npm i -D vite-plugin-bugsnag # yarn add -D vite-plugin-bugsnag
```
## Usage 🚀
Two plugins are provided, one to report build information, and another one to upload sourcemaps.
Both plugins accept `apiKey`, `appVersion`, and `endpoint`, so you can share a config object.
For example:
```js
import { defineConfig } from 'vite'
import { BugsnagBuildReporterPlugin, BugsnagSourceMapUploaderPlugin } from 'vite-plugin-bugsnag'
const isDistEnv = process.env.RAILS_ENV === 'production'
const bugsnagOptions = {
apiKey: process.env.BUGSNAG_API_KEY,
appVersion: process.env.APP_VERSION,
}
export default defineConfig({
plugins: [
isDistEnv && BugsnagBuildReporterPlugin({ ...bugsnagOptions, releaseStage: process.env.RAILS_ENV }),
isDistEnv && BugsnagSourceMapUploaderPlugin({ ...bugsnagOptions, overwrite: true }),
],
})
```
### `BugsnagBuildReporterPlugin (options)`
Use this plugin to report your application's build to Bugsnag.
```js
import { defineConfig } from 'vite'
import { BugsnagBuildReporterPlugin } from 'vite-plugin-bugsnag'
export default defineConfig({
plugins: [
BugsnagBuildReporterPlugin({
apiKey: 'YOUR_API_KEY',
appVersion: '1.2.3',
}),
],
})
```
- It can auto detect source control from `.git`, `.hg` and `package.json`
- Hooks into `writeBundle` to upload the information once the build is finished
- If the build fails, the build report will not be sent
### `BugsnagSourceMapUploaderPlugin (options)`
Use this plugin to upload your application's sourcemaps to Bugsnag.
```js
import { defineConfig } from 'vite'
import { BugsnagSourceMapUploaderPlugin } from 'vite-plugin-bugsnag'
export default defineConfig({
build: {
sourcemap: true,
},
plugins: [
BugsnagSourceMapUploaderPlugin({
apiKey: 'YOUR_API_KEY',
appVersion: '1.2.3',
base: 'https://your-app.xyz/assets/',
}),
],
})
```
- The plugin will enable [`build.sourcemap`][sourcemap] in order for Vite to [generate sourcemaps][Vite Ruby]
- It will upload any generated sourcemaps to Bugsnag
## License
This library is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).