packages/nitro/README.md
NOTICE: This package is in beta state and may be subject to breaking changes.
The minimum supported version of Nitro is 3.0.260415-beta.
This package is a wrapper around @sentry/node with added instrumentation for Nitro's features like:
Install the Sentry Nitro SDK:
# Using npm
npm install @sentry/nitro
# Using yarn
yarn add @sentry/nitro
# Using pnpm
pnpm add @sentry/nitro
withSentryConfig from @sentry/nitro and call it with your Nitro config.nitro.config.tsIf you are using a dedicated nitro.config.ts file, you can import withSentryConfig from @sentry/nitro and call it with your Nitro config.
import { defineNitroConfig } from 'nitro/config';
import { withSentryConfig } from '@sentry/nitro';
const config = defineNitroConfig({
// ...
});
export default withSentryConfig(config, {
// Sentry Build Options
});
vite.config.tsIf you are using Nitro as a Vite plugin, you can import withSentryConfig from @sentry/nitro and call it with your Nitro config.
import { defineConfig } from 'vite';
import { nitro } from 'nitro/vite';
import { withSentryConfig } from '@sentry/nitro';
export default defineConfig({
plugins: [nitro()],
nitro: withSentryConfig(
{
// Nitro options
},
{
// Sentry Build Options
},
),
});
Create an instrument.mjs file in your project root to initialize the Sentry SDK:
import * as Sentry from '@sentry/nitro';
Sentry.init({
dsn: '__YOUR_DSN__',
tracesSampleRate: 1.0,
});
Then use --import in NODE_OPTIONS to load the instrumentation before your app code:
NODE_OPTIONS='--import ./instrument.mjs' npx nitro dev
This works with any Nitro command (nitro dev, nitro preview, or a production start script).
The withSentryConfig function automatically configures source map uploading when the authToken, org, and project
options are provided:
export default withSentryConfig(config, {
org: 'your-sentry-org',
project: 'your-sentry-project',
authToken: process.env.SENTRY_AUTH_TOKEN,
});
If you encounter any issues with error tracking or integrations, refer to the official Sentry Nitro SDK documentation. If the documentation does not provide the necessary information, consider opening an issue on GitHub.