Skip to content

Instantly share code, notes, and snippets.

@PhouvanhKCSV
Forked from DiederikvandenB/nuxt.config.js
Created February 8, 2018 06:09
Show Gist options
  • Save PhouvanhKCSV/8e7ce544938f8ff28520b6876fb5e450 to your computer and use it in GitHub Desktop.
Save PhouvanhKCSV/8e7ce544938f8ff28520b6876fb5e450 to your computer and use it in GitHub Desktop.
NuxtJS Sentry Module
module.exports = {
/* ... */
modules: [
['~/modules/sentry', {
public_key: '',
private_key: '',
project_id: '',
}],
],
/* ... */
};
/* global options:true */
import Vue from 'vue';
import Raven from 'raven-js';
import RavenVue from 'raven-js/plugins/vue';
Raven
.config(`https://${options.public_key}@sentry.io/${options.project_id}`)
.addPlugin(RavenVue, Vue)
.install();
const Raven = require('raven');
const path = require('path');
module.exports = function sentryErrorMiddleware(options) {
// Setup raven
Raven.config(`https://${options.public_key}:${options.private_key}@sentry.io/${options.project_id}`).install();
// Register the client plugin
this.addPlugin({ src: path.resolve(__dirname, 'sentry-client.js'), options });
// Hook in to Nuxt renderer
this.nuxt.plugin('renderer', (renderer) => {
renderer.app.use(Raven.requestHandler());
// Grab Nuxt's original error middleware and overwrite it with our own
const nuxtErrorMiddleware = renderer.errorMiddleware;
renderer.errorMiddleware = (err, req, res, next) => {
// Log the error
res.sentry = Raven.captureException(err, { req });
// Call Nuxt's original error middleware
nuxtErrorMiddleware.call(renderer, err, req, res, next);
};
});
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment