Vue 3
@larabug/vue is the browser client plus a plugin and four composables.
Install the plugin
resources/js/app.js
import { createApp } from 'vue'
import { LaraBugVuePlugin } from '@larabug/vue'
import App from './App.vue'
const app = createApp(App)
app.use(LaraBugVuePlugin, {
dsn: import.meta.env.VITE_LARABUG_DSN,
environment: import.meta.env.MODE,
})
app.mount('#app')
The plugin hooks Vue's own error handler, so an error thrown in a component is reported with the component it came from rather than as a bare stack trace.
It takes every option installation lists, plus three of its own:
| Option | What it does |
|---|---|
attachProps |
Attach the failing component's props to the report. |
trackLifecycleHooks |
Record lifecycle hooks as breadcrumbs. |
logErrors |
Keep logging errors to the console as well as reporting them. |
attachProps is useful and worth a thought: props are your data, and a component holding a signed in user holds their details.
The composables
Vue
<script setup>
import { useLaraBug, useLaraBugUser, useLaraBugContext, useLaraBugTag } from '@larabug/vue'
const larabug = useLaraBug()
useLaraBugUser({ id: props.user.id, plan: props.user.plan })
useLaraBugContext({ project_id: props.project.id })
useLaraBugTag('surface', 'project-detail')
function retry() {
try {
resync()
} catch (error) {
larabug.captureException(error, { retry: true })
}
}
</script>
With Inertia
Install @larabug/inertia as well and follow Inertia. The Vue plugin stays where it is; the Inertia one adds what it knows about visits.