Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Next.js Turbopack Support #8105

Open
Tracked by #85531
ryanolson-aumni opened this issue May 11, 2023 · 49 comments
Open
Tracked by #85531

Next.js Turbopack Support #8105

ryanolson-aumni opened this issue May 11, 2023 · 49 comments
Assignees

Comments

@ryanolson-aumni
Copy link

ryanolson-aumni commented May 11, 2023

⚠️ This original post has been edited by @lforst to reflect the current status of Turbopack Support ⚠️

Important

This issue is tracking progress on Turbopack Support. If you find bugs or problems with the Sentry SDK in combination with Turbopack please open a separate issue. Thank you!

Problem Statement

Sentry should work in combination with Turbopack with all of its features.

Current Status (Last Update Mar 26, 2025)

Feature Support Notes
Next.js app compiles and runs without issues
Server-side instrumentation
Client-side instrumentation - Upgrade to SDK version 9.9.0 or greater
- Upgrade to Next.js canary 15.3.0-canary.8 or greater
- Add instrumentation-client.ts file with Sentry.init() call. (sentry.client.config.ts can be replaced with instrumentation-client.ts. It serves the same purpose.)
Release Injection As a user you probably don't care about this one, but it will become relevant once Turbopack prod builds are a thing.
Source Maps - Needs afterProductionBuild hook implemented in Next.js
- Needs way to inject debug IDs into bundles implemented in Next.js
React Component Name Annotations - Needs way to transform code in Next.js
- Will likely not be possible for the forseeable future
@smeubank
Copy link
Member

Hi @ryanolson-aumni

We are also eager to add support here!

We have 2 plugin repos to add support for webpack, esbuild, rollup, and vite. The latter 3 we support via an opensource project where we'd love to see support so we could potentially adopt it via our usage of their adapters. Upvote the issue there as well. Although I do not think it is on their immediate radar either. unjs/unplugin#302

https://github.com/getsentry/sentry-webpack-plugin

https://github.com/getsentry/sentry-javascript-bundler-plugins

@mdugue
Copy link

mdugue commented Sep 18, 2023

any news on this?

@lforst
Copy link
Member

lforst commented Sep 21, 2023

@mdugue We'll tackle turbopack when it becomes somewhat stable.

@smeubank
Copy link
Member

any news on this?

Fwiw I would also encourage you to upvote and comment on this issue which wr could also use to provide support similar to webpack, vite, esbuild and rollup

unjs/unplugin#302

@lforst
Copy link
Member

lforst commented Oct 18, 2023

Update

As of now, we cannot transfer the functionality we currently have in the SDK to Turbopack:

Turbopack loaders are not passed transpiled javascript, instead, they are passed the original user code. The SDK needs transpiled JS to properly be able to do transformations to modules. We could transpile the user code ourselves but that is fragile AF - so not an option.

As of now, the SDK will continue to work in production mode which is arguably more important, but we would like to support dev mode.

Branch with my experiments: #9295

@Stanzilla
Copy link

Update

As of now, we cannot transfer the functionality we currently have in the SDK to Turbopack:

Turbopack loaders are not passed transpiled javascript, instead, they are passed the original user code. The SDK needs transpiled JS to properly be able to do transformations to modules. We could transpile the user code ourselves but that is fragile AF - so not an option.

As of now, the SDK will continue to work in production mode which is arguably more important, but we would like to support dev mode.

Branch with my experiments: #9295

To clarify, does it work with Turbopack in production mode as-is or only with the changes in your branch?

@getsantry getsantry bot moved this to Waiting for: Product Owner in GitHub Issues with 👀 Dec 14, 2023
@lforst
Copy link
Member

lforst commented Dec 15, 2023

@Stanzilla Turbopack will not work with the SDK (dev and prod). My branch does not contain any fixes or features, just experiments proving that things don't work.

@leerob
Copy link

leerob commented Feb 10, 2024

It's also worth noting that the initial Turbopack support is for next dev, which is only for your local environment. next build support will come later 🙏

@l0g1x
Copy link

l0g1x commented Mar 19, 2025

There's a new PR for the Next.js part of this issue by Vercel, hopefully this will soon let us use Sentry with Next.js+Turbopack.

vercel/next.js#76916

looks like this PR was merged. Is there a timeline estimate we could expect from this point?

@getsantry getsantry bot moved this to Waiting for: Product Owner in GitHub Issues with 👀 3 Mar 19, 2025
@lforst
Copy link
Member

lforst commented Mar 19, 2025

@l0g1x in theory you could use that feature right away if you moved the content from your sentry.client.config.ts into instrumentation-client.ts. Note that unless you're also doing prod builds with Turbopack, you'll not get clientside data unless you have both files.

Timeline for dev-mode turbopack is pretty much EOW now that we got client-side instrumentation. For prod build turbopack we still need to wait on an onBuildEnd hook from Next.js and debug ID support.

@r34son
Copy link

r34son commented Mar 20, 2025

vercel/next.js#77345

@jmarbutt
Copy link

Is this why my dev mode crashes after every change in NextJS now? Anytime I make a change I get an error.

@getsantry getsantry bot moved this to Waiting for: Product Owner in GitHub Issues with 👀 3 Mar 30, 2025
@lforst
Copy link
Member

lforst commented Mar 31, 2025

@jmarbutt In general: No, Sentry should not crash your dev mode in any case.

If you think otherwise, please create a separate issue with reproduction!

@jmarbutt
Copy link

Yeah it seems to only be happening when I am using turbo and sentry, if I disable turbo it works fine. I will see if I can get it to a more reproducible error.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

No branches or pull requests