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

Source maps in production build pointing to .html file instead of .ts #643

Open
EugeneDP89 opened this issue May 8, 2024 · 14 comments
Open
Assignees

Comments

@EugeneDP89
Copy link

Environment

Production

What version are you running? Etc.

"@angular/common": "^17.3.7"
"@ionic/angular": "7.8.6"
"@capacitor/ios": "5.7.5"
"@sentry/angular-ivy": "^7.93.0"
"@sentry/capacitor": "^0.17.0"
"@sentry/cli": "^2.31.0"

Steps to Reproduce

  1. creating a build using command ionic capacitor build ios --configuration=prod --source-map
  2. uploading source maps using command sentry-cli sourcemaps inject --org gymcloud --project strongfirst-mobile ./www && sentry-cli sourcemaps upload --org gymcloud --project strongfirst-mobile ./www --release 1.6 --dist 14

Expected Result

With "optimization": true (enabled for production builds) error stack trace should point to .ts file and method that caused error

Actual Result

With "optimization": true (enabled for production builds) error stack trace points to .html file that contains button that triggers error method, but points to the code at the top of the file, not even the button itself

What actually happened.

The issue is with source maps. I have the next angular.json configuration

"app": {
  "architect": {
    "build": {
      "scripts": [],
      "vendorChunk": true,
      "extractLicenses": false,
      "buildOptimizer": false,
      "sourceMap": true,
      "optimization": false,
      "namedChunks": true
    },
    "configurations": {
      "prod": {
        "optimization": true,
        "outputHashing": "all",
        "sourceMap": {
          "scripts": true,
          "styles": false,
          "hidden": true,
          "vendor": false
        },
        "namedChunks": false,
        "extractLicenses": true,
        "vendorChunk": false,
        "buildOptimizer": true,
      }
    }
  }
}

When I'm using "optimization": true in configurations -> prod source maps are showing html file as a source of error, and position is wrong (button that triggers error is far below).

If I'm using "optimization": false then it shows correct typescript file (error location is little wrong, showing 3 lines higher then it is).

I've tried to choose both Angular and tsc options in sentry wizard, but result is the same. tsc option added this code to tsconfig.json file

"useDefineForClassFields": false,
"inlineSources": true,
// Set `sourceRoot` to  "/" to strip the build path prefix
// from generated source code references.
// This improves issue grouping in Sentry.
"sourceRoot": "/"

This is the result for "optimization": true
optimisation_true
link to event

this is for "optimization": false
optimisation_false
link to event

I don't think disabling optimization for production is good idea.

@lucas-zimerman
Copy link
Collaborator

Hi Eugene and thank you for opening this issue with all the information for reproducing it!
We will investigate what's going on and give you a feedback if anything needs to be changed on the script or on the SDK itself.

Copy link
Contributor

github-actions bot commented Jun 2, 2024

This issue has gone three weeks without activity. In another week, I will close it.

But! If you comment or otherwise update it, I will reset the clock, and if you label it Status: Backlog or Status: In Progress, I will leave it alone ... forever!


"A weed is but an unloved flower." ― Ella Wheeler Wilcox 🥀

@EugeneDP89
Copy link
Author

comment to not close

Copy link
Contributor

This issue has gone three weeks without activity. In another week, I will close it.

But! If you comment or otherwise update it, I will reset the clock, and if you label it Status: Backlog or Status: In Progress, I will leave it alone ... forever!


"A weed is but an unloved flower." ― Ella Wheeler Wilcox 🥀

@EugeneDP89
Copy link
Author

comment to not close

@lucas-zimerman lucas-zimerman self-assigned this Jul 5, 2024
Copy link
Contributor

This issue has gone three weeks without activity. In another week, I will close it.

But! If you comment or otherwise update it, I will reset the clock, and if you label it Status: Backlog or Status: In Progress, I will leave it alone ... forever!


"A weed is but an unloved flower." ― Ella Wheeler Wilcox 🥀

@EugeneDP89
Copy link
Author

Hi Eugene and thank you for opening this issue with all the information for reproducing it! We will investigate what's going on and give you a feedback if anything needs to be changed on the script or on the SDK itself.

Any progress on this?

Copy link
Contributor

This issue has gone three weeks without activity. In another week, I will close it.

But! If you comment or otherwise update it, I will reset the clock, and if you label it Status: Backlog or Status: In Progress, I will leave it alone ... forever!


"A weed is but an unloved flower." ― Ella Wheeler Wilcox 🥀

@EugeneDP89
Copy link
Author

comment to not close

@raygomez
Copy link

I faced the same problem and the issue is because the copying of the web assets happens before the injection of the debug ids.

One way to fix this is to generate the web assets first, run the sentry cli sourcemap commands and then copy the web assets to Capacitor native platform(s). This would work even without providing the release and dist values and with optimization set to true

Copy link
Contributor

This issue has gone three weeks without activity. In another week, I will close it.

But! If you comment or otherwise update it, I will reset the clock, and if you label it Status: Backlog or Status: In Progress, I will leave it alone ... forever!


"A weed is but an unloved flower." ― Ella Wheeler Wilcox 🥀

@EugeneDP89
Copy link
Author

comment

Copy link
Contributor

github-actions bot commented Oct 5, 2024

This issue has gone three weeks without activity. In another week, I will close it.

But! If you comment or otherwise update it, I will reset the clock, and if you label it Status: Backlog or Status: In Progress, I will leave it alone ... forever!


"A weed is but an unloved flower." ― Ella Wheeler Wilcox 🥀

@EugeneDP89
Copy link
Author

comment

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

No branches or pull requests

3 participants