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.