Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

`ng generate app-shell` and `ng generate module --route` produce broken imports when a component `type` is configured

Ouverte
#34,449 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

@MeAkib y travaille déjà.

Depuis le 22/10/2026.

  • #34450 par @MeAkib — ouverte
  • #34472 par @MeAkib — ouverte

É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

area: @schematics/angular
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:

  1. Every workspace updated to v20 with ng update: the migration that keeps the previous style guide behaviour
    (fdc6291dda) adds "@schematics/angular:component": { "type": "component" }.
  2. 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 --route without 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 on 21.2.x and 22.2.x.
  • Suggested fix: follow 661609e3e and pass type: '' (and addTypeToClassName: false, so the class name stays
    AppShell/Feature) to the component schematic in app-shell and module, so the generated files always match
    the references. Happy to send a PR.
  • The module --route case with addTypeToClassName: false also 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

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de angular/angular-cli

Toutes les issues de angular/angular-cli

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.