vite dev-server doesn't allow lazy loaded modules debugging

Ouverte
#28,341 4 commentaires 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
35/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
angular, typescript, vite, vscode

Piste de recherche

Commencez par la reproduction liée du lazy-loading et le chemin serve d’Angular CLI avec Vite. Exécutez la configuration launch.json de VS Code, placez un point d’arrêt dans le composant lazy-loaded et comparez-le à un point d’arrêt dans le bundle principal. La tâche est terminée lorsque le débogage s’arrête au point d’arrêt du composant lazy-loaded ou que la limitation est documentée avec la sortie pertinente.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

angular/build:dev-server area: @angular/build needs: investigation
Command

serve

Is this a regression?
  • Yes, this behavior used to work in the previous version
The previous version in which this bug was not present was

16 (with webpack)

Description

If you try to debug a lazy loaded component form vscode, and set a breakpoint, say into ngOnInit of the component, vite never stops when reaches the breakpoint.
immagine

It's difficult to give more data, as

  • there is no way to change vite config (to add verbosity, for example)
  • looking in the output window, there is nothing tha allows to see vite output
Minimal Reproduction

create a new 18.2 application, add a lazy loaded route, start debugging from visual studio code, set a breakpoint on a line inside the lazy loaded component.
the component renders correctly but vite never stops for the breakpoint.
Here a repository that reproduces the bug. I tested it only in Vscode.
https://github.com/alfmosmq/lazy-loading-debug-test

Exception or Error

No response

Your Environment
Angular CLI: 18.2.2
Node: 20.17.0
Package Manager: npm 10.2.4
OS: win32 x64

Angular: 18.2.2
... animations, cli, common, compiler, compiler-cli, core, forms
... platform-browser, platform-browser-dynamic, platform-server
... router, ssr

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.1802.2
@angular-devkit/build-angular   18.2.2
@angular-devkit/core            18.2.2
@angular-devkit/schematics      18.2.2
@schematics/angular             18.2.2
rxjs                            7.8.1
typescript                      5.5.4
zone.js                         0.14.10
Anything else relevant?

this image shows that the app is actually split in main and a lazy loaded module
immagine
launch.json:

{
  // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "name": "ng serve",
      "type": "chrome",
      "request": "launch",
      "preLaunchTask": "npm: start",
      "url": "http://localhost:4200/"
    },
    {
      "name": "ng test",
      "type": "chrome",
      "request": "launch",
      "preLaunchTask": "npm: test",
      "url": "http://localhost:9876/debug.html"
    }
  ]
}

tasks.json:

{
  // For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558
  "version": "2.0.0",
  "tasks": [
    {
      "type": "npm",
      "script": "start",
      "isBackground": true,
      "problemMatcher": {
        "owner": "typescript",
        "pattern": "$tsc",
        "background": {
          "activeOnStart": true,
          "beginsPattern": {
            "regexp": "(.*?)"
          },
          "endsPattern": {
            "regexp": "bundle generation complete"
          }
        }
      }
    },
    {
      "type": "npm",
      "script": "test",
      "isBackground": true,
      "problemMatcher": {
        "owner": "typescript",
        "pattern": "$tsc",
        "background": {
          "activeOnStart": true,
          "beginsPattern": {
            "regexp": "(.*?)"
          },
          "endsPattern": {
            "regexp": "bundle generation complete"
          }
        }
      }
    }
  ]
}
Langage dominant
TypeScript
Étoiles
27k
Forks
11.8k
Merge moyen
16 h 35 min
PR mergées (30 j)
176

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de angular/angular-cli

Toutes les issues de angular/angular-cli

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.