/sentry-javascript

Official Sentry SDKs for Javascript

Primary LanguageJavaScriptBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause


Build Status codecov npm version typedoc

Official Sentry SDKs for JavaScript

This is the next line of Sentry JavaScript SDKs, comprised in the @sentry/ namespace. It will provide a more convenient interface and improved consistency between various JavaScript environments.

Links

Contents

Supported Platforms

For each major JavaScript platform, there is a specific high-level SDK that provides all the tools you need in a single package. Please refer to the README and instructions of those SDKs for more detailed information:

  • @sentry/hub: Global state management of SDKs
  • @sentry/minimal: Minimal SDK for library authors to add Sentry support
  • @sentry/browser: SDK for Browsers, including integrations for React, Angular, Ember, Vue and Backbone
  • @sentry/node: SDK for Node, including integrations for Express, Koa, Loopback, Sails and Connect
  • @sentry/electron: SDK for Electron with support for native crashes
  • sentry-cordova: SDK for Cordova Apps and Ionic with support for native crashes
  • raven-js: Our old stable Javascript SDK, we still support and release bug fixes for the SDK but all new features will be implemented in @sentry/browser which is the successor.
  • raven: Our old stable Node SDK, same as for raven-js we still support and release bug fixes for the SDK but all new features will be implemented in @sentry/node which is the successor.

Installation and Usage

To install a SDK, simply add the high-level package, for example:

npm install --save @sentry/browser
yarn add @sentry/browser

Setup and usage of these SDKs always follows the same principle.

import { init, captureMessage } from '@sentry/browser';

init({
  dsn: '__DSN__',
  // ...
});

captureMessage('Hello, world!');

If you want sentry to be customized for the browsers you want to support use the esm build:

import { init, captureMessage } from '@sentry/browser/esm';

and add it to your babel/... build, if you want to support older browsers

TIP: You can use <script type="module" str="newbrowser.js"> + <script nomodule src="oldbrowser.js"> to provide builds for newer and older browsers

Other Packages

Besides the high-level SDKs, this repository contains shared packages, helpers and configuration used for SDK development. If you're thinking about contributing to or creating a JavaScript-based SDK, have a look at the resources below:

  • @sentry/core: The base for all JavaScript SDKs with interfaces, type definitions and base classes.
  • @sentry/utils: A set of helpers and utility functions useful for various SDKs.
  • @sentry/typescript: Shared Typescript compiler and linter options.
  • @sentry/types: Types used in all packages.