`ng generate app-shell` and `ng generate module --route` produce broken imports when a component `type` is configured
Les mainteneurs répondent en général sous 1 jour
@MeAkib y travaille déjà.
Depuis le 22/10/2026.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 35/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- À l'abandon
- Stack technique
- angular, typescript
- Domaine
- build-system, cli
Piste de recherche
Read packages/schematics/angular/app-shell/index.ts and the routing and non-routing module templates named in the issue, then compare how the library schematic handled this in commit 661609e3e. Reproduce with the two commands in the issue using the described component type configurations. Done means both generated imports resolve and the builds succeed; an open pull request is already linked.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Command
generate
Is this a regression?
- Yes, this behavior used to work in the previous version
The previous version in which this bug was not present was
19.x (before the v20 file naming change)
Description
ng generate app-shell and ng generate module <name> --route <path> --module <parent> generate a component and then
reference it with a hard-coded file path and class name. Both assume the v20+ defaults (no type in the file or class
name). When the workspace configures a component type, the component inherits it and the hard-coded references no
longer match, so the build fails.
Workspaces get a component type in two common ways:
- Every workspace updated to v20 with
ng update: the migration that keeps the previous style guide behaviour
(fdc6291dda) adds"@schematics/angular:component": { "type": "component" }. ng new --file-name-style-guide=2016, which adds{ "type": "component", "addTypeToClassName": false }.
Hard-coded references:
packages/schematics/angular/app-shell/index.ts:withAppShell(AppShell)and
insertImport(..., 'AppShell', './app-shell/app-shell').packages/schematics/angular/module/files/.../__name@dasherize__-routing__typeSeparator__module.ts.template(and the
non-routing module template for--routewithout a routing module):import { <%= classify(name) %> } from './<%= dasherize(name) %>';
The library schematic had the same problem (#26981) and was fixed in 661609e3e by passing an explicit type: '' to the
component schematic.
Minimal Reproduction
app-shell (updated-workspace configuration):
ng new ws --defaults
cd ws
# what `ng update` to v20 adds to angular.json under projects.ws.schematics:
# "@schematics/angular:component": { "type": "component" }
ng generate app-shell
ng build
Generated src/app/app-shell/app-shell.component.ts contains export class AppShellComponent {}, but
src/app/app.config.server.ts contains:
import { AppShell } from './app-shell/app-shell';
...
provideServerRendering(withRoutes(serverRoutes), withAppShell(AppShell))
module --route (2016 file name style):
ng new ws --no-standalone --file-name-style-guide=2016 --defaults
cd ws
ng generate module feature --route feature --module app
ng build
Generated src/app/feature/feature-routing.module.ts:
import { Feature } from './feature'; // the file is feature.component.ts
Exception or Error
# app-shell
✘ [ERROR] TS2307: Cannot find module './app-shell/app-shell' or its corresponding type declarations. [plugin angular-compiler]
✘ [ERROR] Could not resolve "./app-shell/app-shell"
# module --route
✘ [ERROR] Could not resolve "./feature"
✘ [ERROR] TS2307: Cannot find module './feature' or its corresponding type declarations. [plugin angular-compiler]
Your Environment
Angular CLI : 22.2.3
Node.js : 24.15.0
Package Manager : npm 11.12.1
Operating System : darwin arm64
@schematics/angular : 22.2.3
Anything else relevant?
- Affected since 20.0.0 (hard-coded names from 23fc8e1e17, "generate components without a
.component
extension/type"). Same code on21.2.xand22.2.x. - Suggested fix: follow 661609e3e and pass
type: ''(andaddTypeToClassName: false, so the class name stays
AppShell/Feature) to the component schematic inapp-shellandmodule, so the generated files always match
the references. Happy to send a PR. - The
module --routecase withaddTypeToClassName: falsealso hits #<issue for 01> (wrong NgModule declaration);
link the two once filed.
- Langage dominant
- TypeScript
- Étoiles
- 27k
- Forks
- 11.8k
- Merge moyen
- 1 j 5 h
- PR mergées (30 j)
- 244
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de angular/angular-cli
-
Can't use an array of hostnames in --allowedHosts cli parameter in @angular/build:dev-serverOuvertearea: @angular/build gemini-triaged
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
angular/angular-cli#33955 ·
Les mainteneurs répondent en général sous 1 jour
-
area: @angular/cli gemini-triaged
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
angular/angular-cli#33055 · 1 commentaire · 3 réactions ·
Les mainteneurs répondent en général sous 1 jour
-
Angular SSR Unescaped prerender parameters enable RCE through generated manifests and XSS in redirect pagesPeut-être pris @SkyZeroZx l’a pris il y a 152 jours. Ouvertearea: @angular/ssr
Difficulté 4/5 3-5 jours Accessibilité débutants 53/100
angular/angular-cli#34474 ·
Les mainteneurs répondent en général sous 1 jour
-
Tailwind CSS v4 classes in new or moved files are not picked up by ng serve until another rebuildPeut-être pris @MeAkib l’a pris il y a 3 jours. Ouvertearea: @angular/build
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
angular/angular-cli#34446 ·
Les mainteneurs répondent en général sous 1 jour
-
unit-test builder (Vitest): key `fsModuleCache` on the served build output instead of forcing it offPeut-être pris @jv3n l’a pris il y a 3 jours. Ouvertearea: @angular/build
Difficulté 4/5 3-5 jours Accessibilité débutants 20/100
angular/angular-cli#34443 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de angular/angular-cli
Issues similaires
-
bug hacktoberfest help wanted
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
libredb/libredb-studio#1941 ·
Les mainteneurs répondent en général sous 1 jour
-
chore other
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
alastair-smith/card-games#308 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 86/100
paperclipai/paperclip#17379 ·
Les mainteneurs répondent en général sous 1 jour
-
[good first issue, hacktoberfest] 🏯 Hacktoberfest Task - Add new Anime Quote 626 (good-first-issue)Ouvertecommunity first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficulté 1/5 Moins d'une heure Accessibilité débutants 76/100
lingdojo/kana-dojo#33040 · 1 commentaire · 5 réactions ·
Les mainteneurs répondent en général sous 1 jour
-
bug mobile ui
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
Les mainteneurs répondent en général sous 1 jour