Vitest: serve linked libraries from ngp's output cache, not Vitest's

Aperta
#37 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
angular, typescript, vite
Ambito
build-system

Direzione di ricerca

Start by reading the shared-cache work in #27 and locating ngp's defineCacheKeyGenerator and linker cache handling. Check how returning false for app modules routes them through ngp's cache, then trace the linked-library path and the existing Vitest patch. Done means linked libraries use ngp's cache across projects, with coverage for the Vitest setup described in the issue.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

feature

Part of #27.

Problem

In Vitest, ngp leaves linked libraries to Vitest's own module cache, and Vitest keys every entry on the project. @angular/* and every other linked library is linked again in each project. Vitest has no key without the project, which is why we patch Vitest today.

Proposed change

Return false for linked libraries too in ngp's defineCacheKeyGenerator, as for app modules, and serve them from ngp's cache. Linker output depends only on the file and the linker version, so it's the easiest part to share.

Part of the shared-cache work in #27.

Setup: ngp 0.3.0, @angular/compiler/compiler-cli 22.3.0-next.4, Vite 8, Vitest 5.1.0 (pool: 'forks'), a Nx monorepo with 1,035 Angular projects, one Vitest config each, specs written for TestBed under JIT (Analog).

Lingua principale
TypeScript
Stelle
7
Fork
0
Merge medio
12h 24m
PR unite (30g)
13

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di push-based/vite-plugin-ngp

Tutte le issue di push-based/vite-plugin-ngp

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.