Skip to content

Add new "common" schematic to share configurations for all schematics at once #33221

@Maryannah

Description

@Maryannah

Command

generate

Description

Implement an internal artifact to commonize the configuration of schematics so that all schematics can share a common configuration by default, and override on a per-artifact basis if needed. Currently, all configurations are duplicated, and while not that annoying to deal with for a single collection, it can quickly add up when using several collections.

Describe the solution you'd like

Actual :

{
  "schematics": {
    "@schematics/angular:component": { "skipSelector": true },
    "@schematics/angular:directive": { "skipSelector": true },
    "@schematics/angular:pipe": { "skipSelector": true }
  }
}

Proposed :

{
  "schematics": {
    "@schematics/angular:common": { "skipSelector": true }
  }
}

This new common schematic would contain either

  • only fields that are common to all artifacts
  • All fields possible, even if not applicable to certain artifacts

Resolving would follow this pattern :

  • Look for common artifact schematic value
  • If existing, apply value
    • If all fields are possible : also check if value is applicable to artifact
  • Look for direct artifact schematic value
  • Override value

Describe alternatives you've considered

Doing it by hand as already done today is the only solution

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions