Git Product home page Git Product logo

sentry-module's Introduction

@nuxtjs/sentry

npm version npm downloads Circle CI Codecov Dependencies Standard JS

Sentry module for Nuxt.js

Features

The module enables error logging through Sentry.

  • Please note that version 2.2.0 of this package removed the older public_key and private_key options, since the updated Sentry packages don't support these anymore.
  • Please note that version 2.0.0 of this package introduces a breaking change. See #30 for more information.

Setup

  • Add @nuxtjs/sentry dependency using yarn or npm to your project
  • Add @nuxtjs/sentry to modules section of nuxt.config.js
{
  modules: [
    '@nuxtjs/sentry',
  ],

  sentry: {
    dsn: '', // Enter your project's DSN here
    config: {}, // Additional config
  }
}

Nuxt compatibility

Versions of NuxtJS before v2.4.0 are not supported by this package.

Usage

Enter your DSN in the NuxtJS config file. Additional config settings can be found here.

Usage in Vue component

In a Vue component, Sentry is available as this.$sentry, so we can call functions like

this.$sentry.captureException(new Error('example'))

where this is a Vue instance.

Usage in asyncData

While using Nuxt's asyncData method, there's $sentry object in the context:

async asyncData ({ params, $sentry }) {
  try {
    let { data } = await axios.get(`https://my-api/posts/${params.id}`)
    return { title: data.title }
  } catch (error) {
    $sentry.captureException(error)
  }
}

Usage in other lifecycle areas

For the other special Nuxt lifecycle areas like plugins, middleware, and nuxtServerInit, the $sentry object is also accessible through the context object like so:

async nuxtServerInit({ commit }, { $sentry }) {
  try {
    let { data } = await axios.get(`https://my-api/timestamp`)
    commit('setTimeStamp', data)
  } catch (error) {
    $sentry.captureException(error)
  }
}

Options

Options can be passed using either environment variables or sentry section in nuxt.config.js. Normally, setting required DSN information would be enough.

dsn

  • Type: String
    • Default: process.env.SENTRY_DSN || false
    • If no dsn is provided, Sentry will be initialised, but errors will not be logged. See #47 for more information about this.

disabled

  • Type: Boolean
    • Default: process.env.SENTRY_DISABLED || false
    • Sentry will not be initialised if set to true.

disableClientSide

  • Type: Boolean
    • Default: process.env.SENTRY_DISABLE_CLIENT_SIDE || false

disableServerSide

  • Type: Boolean
    • Default: process.env.SENTRY_DISABLE_SERVER_SIDE || false

initialize

  • Type: Boolean
    • Default: process.env.SENTRY_INITIALIZE || true
    • Can be used to add the $sentry object without initializing it, which will result in not reporting errors to Sentry when they happen but not crashing on calling the Sentry APIs.

logMockCalls

  • Type: Boolean
    • Default: true
    • Whether to log calls to the mocked $sentry client-side object in the console
    • Only applies when mocked instance is used (when disabled = true or disableClientSide = true)

publishRelease

sourceMapStyle

  • Type: String
    • Default: source-map
    • Only has effect when publishRelease = true
    • The type of source maps generated when publishing release to Sentry. See https://webpack.js.org/configuration/devtool for a list of available options
    • Note: Consider using hidden-source-map instead. For most people, that should be a better option but due to it being a breaking change, it won't be set as the default until next major release

attachCommits

  • Type: Boolean
    • Default: process.env.SENTRY_AUTO_ATTACH_COMMITS || false
    • Only has effect when publishRelease = true

repo

  • Type: String
    • Default: process.env.SENTRY_RELEASE_REPO || false
    • Only has effect when publishRelease = true && attachCommits = true

disableServerRelease

disableClientRelease

clientIntegrations

serverIntegrations

config

  • Type: Object
    • Default: { environment: this.options.dev ? 'development' : 'production' }

serverConfig

  • Type: Object
    • Default: { }
    • If specified, values will override config values for server sentry plugin

clientConfig

  • Type: Object
    • Default: { }
    • If specified, values will override config values for client sentry plugin

webpackConfig

Submitting releases to Sentry

Support for the sentry-webpack-plugin was introduced #a6cd8d3. This can be used to send releases to Sentry. Use the publishRelease option to enable this feature.

Note that releases are only submitted to Sentry when (options.publishRelease && !isDev) is true.

License

MIT License

Copyright (c) Diederik van den Burger [email protected]

sentry-module's People

Contributors

aldarund avatar anteriovieira avatar atinux avatar dariye avatar darkside73 avatar dependabot[bot] avatar diederikvandenb avatar felixdenoix avatar georgeboot avatar kimulaco avatar matthieusieben avatar maximstone avatar mirucon avatar mya-ake avatar nerijunior avatar orioncx avatar paulgv avatar rchl avatar renovate-bot avatar renovate[bot] avatar rickmak avatar robyedlin avatar sajadhsm avatar seybsen avatar simllll avatar thooto avatar tomoyukikashiro avatar uniibu avatar vruzhentsov avatar zakhse avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.