Partial mode: NgModule-declared components get no dependencies, so their directives never match
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- angular, rust, typescript
- Ambito
- compilers
Direzione di ricerca
Start by comparing partial and full component compilation in the compiler entry points, then trace how NgModule scope information reaches ɵɵngDeclareComponent and how the Angular linker handles its dependencies. The issue identifies no files or tests; use the reproduction with DepModule and App as the starting case. Done means linked partial output includes the NgModule-scoped directive so D matches in App's template, with an approach compatible with the linker.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
In partial compilation, a component declared in an NgModule (standalone: false) gets no dependencies in ɵɵngDeclareComponent. After linking, App.ɵcmp.directiveDefs is null, so no directive from the NgModule scope matches in its template. Full mode works, because there dependencies is ɵɵgetComponentDepsFactory(App), which is resolved at runtime.
Found while re-checking #623.
Reproduction
// dep.ts
@Directive({selector: '[d]', standalone: false}) export class D {}
@NgModule({declarations: [D], exports: [D]}) export class DepModule {}
// main.ts
import {DepModule} from './dep';
@Component({selector: 'app', template: '<div d></div>', standalone: false}) export class App {}
@NgModule({declarations: [App], imports: [DepModule]}) export class AModule {}
Compiled with compilationMode: 'partial', linked with linkAngularPackageSync, and run with @angular/core 22.2:
App.ɵcmp.directiveDefs |
|
|---|---|
| oxc full | [D, App] |
| oxc partial + link | null, so D never matches |
| ngtsc partial | dependencies: [{kind: "directive", type: i1.D, selector: "[d]"}] |
Notes
ngtsc builds this list from the NgModule scope, which comes from the whole program. One way to do it one file at a time is to emit something in partial mode that resolves at runtime, as full mode does with ɵɵgetComponentDepsFactory. Angular's linker would also have to accept that output, so this needs a design decision.
- Lingua principale
- Rust
- Stelle
- 244
- Fork
- 26
- Merge medio
- 23h 41m
- PR unite (30g)
- 106
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 voidzero-dev/oxc-angular-compiler
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
voidzero-dev/oxc-angular-compiler#654 ·
I maintainer di solito rispondono entro 1 giorno
-
Constructor param typed by a same-file interface is injected as a token (ReferenceError at runtime)Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 73/100
voidzero-dev/oxc-angular-compiler#653 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 28/100
voidzero-dev/oxc-angular-compiler#623 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Support useDefineForClassFields: false (Class Field Lowering)Forse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
voidzero-dev/oxc-angular-compiler#73 · 11 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Angular 21.2.0 + @oxc-angular/vite 0.0.7 SSR runtime parity regressions (RouterLinkActive, Forms DI, Apollo DI) require app-level shimsForse di nuovo libera @Brooooooklyn l’ha presa 239 giorni fa e non c’è nessuna pull request aperta. Aperta
voidzero-dev/oxc-angular-compiler#61 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di voidzero-dev/oxc-angular-compiler
Issue simili
-
area:cli bug dotnet good first issue priority:medium
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
rtk-ai/rtk#4844 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
delta-io/delta-kernel-rs#3757 ·
I maintainer di solito rispondono entro 3 giorni
-
area: library data-loss type: bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
alplabai/signex#1740 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
test(fslc): the unreadable mutate catalog test pins the Unix I/O error text and fails on WindowsForse già presa @rizumita l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 69/100
I maintainer di solito rispondono entro 1 giorno