Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Vitest coverage issue `vite:import-analysis` error `Pre-transform error: Failed to resolve import "#/util" from "src/app/app.ts". Does the file exist?`

Ouverte
#32,891 3 commentaires 0 réactions 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
48/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
Calme
Stack technique
playwright, typescript
Domaine
testing-qa

Piste de recherche

Commencez par reproduire l’échec avec le projet Angular indiqué, l’alias de chemin de tsconfig.json, l’import de src/app/app.ts et la commande ng test, en comparant Vitest 4.1.0 à 4.0.8. Suivez la génération de la coverage et la gestion des source maps lorsque le chunk partagé de l’application fait référence à l’alias. C’est terminé lorsque la coverage du navigateur s’achève sans erreurs vite:import-analysis pendant que l’alias est résolu.

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

Description

angular/build:unit-test area: @angular/build gemini-triaged
Command

test

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

vitest@4.0.8

Description

I'm not sure if this issue is an issue with Vitest, or the Angular CLI integration with Vitest. I put the issue here, because I have no idea how to reproduce this issue without Angular at the moment.

The issue is that when using tsconfig.json property paths and running browser tests with coverage, these paths will not used when Vitest tries to read coverage from source maps. The requirement seems to be that a shared chunk exists (import './app' in the repro steps).

This results in errors during coverage generation, but tests do not crash. The errors come from Vite's dev server pre transforming original .ts files referenced in source-maps.

Requirements

  • Using paths in tsconfig.json
  • Angular CLI + eslint creates a shared chunk that has the paths in it's sourcemap
  • Vitest with browsers + coverage + coverageInclude
  • Vitest v4.1.0+
Minimal Reproduction
  1. Init Angular project & install vitest coverage & browser packages
npx @angular/cli@21.1.5 new ng21.1.5 -s -t --style css --no-ssr --ai-config none
npm i -E -D vitest@4.1.0 @vitest/browser-playwright@4.1.0 @vitest/coverage-v8@4.1.0 playwright
  1. Add src/app/util.ts file
export const greet = 'Hello';
  1. Add a path alias to util file
{
  "compilerOptions": {
    "paths": {
      "#/util": ["./src/app/util.ts"]
    }
  }
}
  1. Make App (app.ts) use value from util.ts
import { greet } from '#/util';
// ...
export class App {
  protected readonly title = signal(greet);
}
  1. Add import to app.ts from app.config.ts
import './app';
  1. Run tests with browser, coverage & coverage include
npx ng test --no-watch --browsers chromium --coverage --coverage-include src/app/**/*.ts
Exception or Error
There's logged errors for every file that uses the path alias, which in our project is most of them (e.g. `import { shared } from '#/core';`).


00:02:12 [vite] (client) Pre-transform error: Failed to resolve import "#/util" from "src/app/app.ts". Does the file exist?
  Plugin: vite:import-analysis
  File: C:/Users/foo/repro/src/app/app.ts:3:22
  11 |  import { Component, signal } from "@angular/core";
  12 |  import { RouterOutlet } from "@angular/router";
  13 |  import { greet } from "#/util";
     |                         ^
  14 |  export let App = class {
  15 |    title = signal(greet);
Your Environment
I've tried with `@angular/build` + `@angular/cli` at several versions, including `21.1.x` and `21.2.x`. Downgrading `vitest` to `4.0.8` fixes the issue, but `vitest@4.1.0` and `4.1.2` both failed.

----------------------------------------

Angular CLI       : 21.2.5
Angular           : 21.2.6
Node.js           : 25.8.2 (Unsupported)
Package Manager   : npm 11.11.1
Operating System  : win32 x64

┌───────────────────────────┬───────────────────┬───────────────────┐
│ Package                   │ Installed Version │ Requested Version │
├───────────────────────────┼───────────────────┼───────────────────┤
│ @angular/build            │ 21.2.5            │ ^21.1.5           │
│ @angular/cli              │ 21.2.5            │ ^21.1.5           │
│ @angular/common           │ 21.2.6            │ ^21.1.0           │
│ @angular/compiler         │ 21.2.6            │ ^21.1.0           │
│ @angular/compiler-cli     │ 21.2.6            │ ^21.1.0           │
│ @angular/core             │ 21.2.6            │ ^21.1.0           │
│ @angular/forms            │ 21.2.6            │ ^21.1.0           │
│ @angular/platform-browser │ 21.2.6            │ ^21.1.0           │
│ @angular/router           │ 21.2.6            │ ^21.1.0           │
│ rxjs                      │ 7.8.2             │ ~7.8.0            │
│ typescript                │ 5.9.3             │ ~5.9.2            │
│ vitest                    │ 4.1.0             │ 4.1.0             │
└───────────────────────────┴───────────────────┴───────────────────┘
Anything else relevant?

Does not seem to be OS specific. The issue is on GitHub Actions on Ubuntu, and locally on Windows.

Langage dominant
TypeScript
Étoiles
27k
Forks
11.8k
Merge moyen
17 h 25 min
PR mergées (30 j)
183

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.