javascript - Angular 19: 'imports' är endast giltigt på en komponent som är fristående


Jag migrerar mitt Angular-bibliotek från v18 till v19.

Innan uppgradering såg komponenterna ut som följande:

@Component({
    selector: "custom-component",
    templateUrl: "./custom.component.html",
    styleUrls: ["./custom.component.scss"],
    standalone: true,
    imports: [
        MatIconModule,
        CommonModule,
        ... other imports
    ],

Eftersom standalone: true tas bort i uppgraderingsprocessen som beskrivs här i de officiella Angular-dokumenten.

Nu efter uppgraderingen får jag ett fel:

'imports' is only valid on a component that is standalone.(-992010)

min komponent efter automatisk uppgradering ser ut så här:

@Component({
    selector: "custom-component",
    templateUrl: "./custom.component.html",
    styleUrls: ["./custom.component.scss"],
    imports: [
        MatIconModule,
        CommonModule,
        ... other imports
    ],

All hjälp uppskattas.

Jag har uppdaterat angular-language-service och också startat om VS Code, men inget hjälpte.

Svar #1

Tittar på de GitHub-problem som är relaterade till detta:

  • LS känner inte igen komponenter som fristående #2119

  • Problem med ny projektuppsättning och att standalone som standard är satt till true #58765


  • Du kan avinstallera/återinstallera Angular språkservice.

  • Du kan öppna ditt projekt som rotprojekt i VSCode, om du öppnar ett arbetsutrymme med flera projekt, förvirrar det Angulars språktjänst om vilken Angular-version som är korrekt att använda.

  • Försök att radera .angular (cache-mapp) och kontrollera efter att du har startat om VSCode.

Svar #2

Ta bort .angular-cachemappen och även node_modules. Din IDE anser att ditt Angular-projekt är en äldre version. Genom att ta bort dessa mappar behöver du installera alla beroenden från början vilket löser dessa problem (npm install).

Jag hittade samma fel i Angular 19.1.4 och Webstorm 23.3.4, att ta bort mappar hjälpte.

Detta ändrar inga projektfiler, det är en säker åtgärd.