Skip to content

JulianMar/nuxt-bugsnag

Repository files navigation

nuxt-bugsnag

npm version npm downloads Codecov License

📖 Release Notes

Nuxt2

If you are using Nuxt2 see here

Playground

Open Stackblitz and try it out.

Setup

  1. Add nuxt-bugsnag dependency to your project
npm install nuxt-bugsnag
  1. Add nuxt-bugsnag to the modules section of nuxt.config.js.
{
  modules: [
    'nuxt-bugsnag'
  ]
}

You can pass every bugsnag options in the config object

{
  bugsnag: {
    config: {
      apiKey: 'your key',
      enabledReleaseStages: ['staging', 'production'],
    }
  }
}

Source Maps

You can upload sourcemaps by adding the option publishRelease. It's important to set the baseUrl as well, it will allow bugsnag to map your errors to the sourcemap:

{
  bugsnag: {
    publishRelease: true,
    baseUrl: 'http://localhost:3000'
  }
}

The output for a medium Nuxt App can get quite big. So we added an option to disable the logs for that case.

{
  bugsnag: {
    publishRelease: true,
    disableLog: true,
    baseUrl: 'http://localhost:3000'
  }
}

Setting a different project root

If your Nuxt App runs in a different folder than /, you might want to set projectRoot to this directory, so that BugSnag can match the sourcemap.

{
  bugsnag: {
    publishRelease: true,
    projectRoot: '/someFolder/'
  }
}

Config Example

I would recommend to set these options

{
  modules: [
    'nuxt-bugsnag',
  ],

  bugsnag: {
    publishRelease: true,
    config: {
      apiKey: 'YOUR_API_KEY',
      enabledReleaseStages: ['staging', 'production'],
      releaseStage: process.env.NODE_ENV,
      appVersion: 'YOUR_VERSION',
    }
  }
}

Reporting custom errors

The simplest answer is like this.

this.$bugsnag.notify(new Error('Some Error'))

if you like the composition approach you can do it like this

useBugsnag().notify('Some Error')

Development

  1. Clone this repository
  2. Install dependencies using npm install
  3. Start development server using npm run dev

License

MIT License

Copyright (c) Julian Martin julian.martin@russmedia.com