Vitest: keep `@defer` dependencies as static imports, so class metadata stays synchronous
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 54/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- angular, typescript, vite
- Ambito
- build-system, testing
Direzione di ricerca
Start in ngp/preprocessor/src/processor.js and trace how canDeferDeps and deferredOnlyNames are set, then read the related JIT compatibility work in #27 for the intended test mode or shared option. Done means Vitest test mode keeps @defer dependencies eagerly loaded without relying on process.env.VITEST, and the relevant tests cover synchronous class metadata for TestBed and MockComponent().
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Part of #27.
Problem
A deferrable dependency becomes a dynamic import, so the component's class metadata is set asynchronously (ɵsetClassMetadataAsync). TestBed only resolves it in compileComponents(), and ng-mocks reads metadata synchronously. Specs that never call compileComponents(), and every MockComponent() of such a component, fail.
Proposed change
Under Vitest, canDeferDeps is false and nothing is added to deferredOnlyNames (ngp/preprocessor/src/processor.js). This matches JIT, where @defer dependencies are also loaded eagerly in tests.
Our patch gates this on process.env.VITEST, which is the wrong switch for a library. In ngp it belongs in its test mode, or behind one option shared by the JIT-compatibility changes in #27 (for example test: { jitCompat: true }).
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
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di push-based/vite-plugin-ngp
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
push-based/vite-plugin-ngp#33 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
push-based/vite-plugin-ngp#42 ·
I maintainer di solito rispondono entro 1 giorno
-
feature
Difficoltà 4/5 3-5 giorni Idoneità per principianti 52/100
push-based/vite-plugin-ngp#41 ·
I maintainer di solito rispondono entro 1 giorno
-
feature
Difficoltà 4/5 3-5 giorni Idoneità per principianti 50/100
push-based/vite-plugin-ngp#40 ·
I maintainer di solito rispondono entro 1 giorno
-
feature
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
push-based/vite-plugin-ngp#39 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di push-based/vite-plugin-ngp
Issue simili
-
nb stats: the high-error-rate anomaly and the error-causes line give different cause splits for the same errorsForse già presa @jeanibarz l’ha presa oggi. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 89/100
jeanibarz/agent-notebook#418 ·
I maintainer di solito rispondono entro 1 giorno
-
Page sections overlap each other on every page (e.g. Seasons, Actors and Reviews on show pages)Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
josephfung/curia#2563 ·
I maintainer di solito rispondono entro 1 giorno
-
README demo: offer a controlled video variant next to the GIF for reduced motion and mobile dataApertaaccessibility
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
onetechgroupll/eigen-beam#26 ·
I maintainer di solito rispondono entro 1 giorno
-
maintenance
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
killi199/time-tracking#532 ·
I maintainer di solito rispondono entro 1 giorno