sentry-javascript icon indicating copy to clipboard operation
sentry-javascript copied to clipboard

Sentry Angular 8: Can't use without @angular/router

Open hheexx opened this issue 1 year ago • 1 comments

Is there an existing issue for this?

  • [X] I have checked for existing issues https://github.com/getsentry/sentry-javascript/issues
  • [X] I have reviewed the documentation https://docs.sentry.io/
  • [X] I am using the latest SDK release https://github.com/getsentry/sentry-javascript/releases

How do you use Sentry?

Self-hosted/on-premise

Which SDK are you using?

@sentry/angular

SDK Version

8.9.2

Framework Version

Angular 18

Link to Sentry event

No response

SDK Setup

No response

Steps to Reproduce

Sentry can't be used without angular router. We have a project that uses alternative router. As soon as I import * as Sentry from "@sentry/angular"; I get error:

X [ERROR] Could not resolve "@angular/router"

node_modules/@sentry/angular/fesm2020/sentry-angular.mjs:9:20:
  9 │ import * as i1 from '@angular/router';
    ╵                     ~~~~~~~~~~~~~~~~~

You can mark the path "@angular/router" as external to exclude it from the bundle, which will remove this error and leave the unresolved path in the bundle.

X [ERROR] TS2307: Cannot find module '@angular/router' or its corresponding type declarations. [plugin angular-compiler]

node_modules/@sentry/angular/tracing.d.ts:2:51:
  2 │ import type { ActivatedRouteSnapshot, Event } from '@angular/router';
    ╵                                                    ~~~~~~~~~~~~~~~~~

X [ERROR] TS2307: Cannot find module '@angular/router' or its corresponding type declarations. [plugin angular-compiler]

node_modules/@sentry/angular/tracing.d.ts:3:23:
  3 │ import { Router } from '@angular/router';

Expected Result

work

Actual Result

!work

hheexx avatar Jun 18 '24 11:06 hheexx

Hey @hheexx thanks for writing in. You're right that the SDK only seems to support Angular router atm.

For now can you use a build plugin (vite or webpack) to alias the export to {} to perhaps remove these warnings?

I'm backlogging this for the team, but PRs are welcome if you would like to help fix this. Thanks!

AbhiPrasad avatar Jun 18 '24 18:06 AbhiPrasad

Hi @hheexx, is this still an issue for you?

Another thing you could try is not to use the Sentry.TraceService as that is the piece that relies on @angular/router. By not using it, treeshaking should get rid of it, but you won't get any navigation spans.

andreiborza avatar Mar 07 '25 14:03 andreiborza