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

`ng new --view-encapsulation` has no effect on generated components

Fermée
#34,388 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

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

Une pull request liée a déjà été fusionnée.

  • #34389 par @MeAkib — fusionnée

É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

The issue identifies the ng new and ng generate application paths, the generated root App component, angular.json component schematic defaults, and main.ts bootstrap options. Trace how --view-encapsulation flows through those generation paths and compare the generated files with the reproduction steps. Done means the selected mode affects the initial component and later generated components under AOT.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

area: @schematics/angular
Command

new

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

No response

Description

The --view-encapsulation option of ng new / ng generate application is documented as "Sets the view
encapsulation mode for components in the initial project", but it currently has no effect:

  1. The root App component is generated without encapsulation, so its styles stay scoped (Emulated).
  2. The value is not saved to the project's @schematics/angular:component defaults in angular.json, so components
    generated later with ng g c also use Emulated.
  3. For --no-standalone apps, main.ts gets bootstrapModule(AppModule, { defaultEncapsulation: ViewEncapsulation.X }).
    defaultEncapsulation is only read by the JIT compiler, so it has no effect with AOT, which is the default for
    ng build and ng serve.

This looks like #13689 again: it was fixed in 89797900db by setting the encapsulation on the root component and in
bootstrapModule, but the root component part was removed in 58bc5b8f2a (for #13742, invalid generated code), leaving
only the JIT-only option.

Minimal Reproduction
  1. ng new ve-repro --defaults --view-encapsulation=None (same result with --no-standalone)
  2. Add h1 { color: red; } to src/app/app.css
  3. ng build --configuration development
  4. The output contains h1[_ngcontent-%COMP%], i.e. the styles are still encapsulated.
  5. angular.json has no viewEncapsulation under projects.ve-repro.schematics, so ng g c foo also generates an
    Emulated component.
Exception or Error

Your Environment
Latest
Anything else relevant?

Possible fix: set encapsulation on the generated root component, save viewEncapsulation in the component schematic
defaults, and drop defaultEncapsulation from main.ts. Happy to send a PR.

Langage dominant
TypeScript
Étoiles
27k
Forks
11.8k
Merge moyen
1 j 6 h
PR mergées (30 j)
216

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.