Skip to content

Passing an argument to an aliased custom ng g schematic, don't recognize the argument #24518

Closed
@Lipata

Description

@Lipata

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

13.x

Description

I've created a custom schematic, following the Authoring schematics
topic. The custom schematic (named component) has aliases (c & comp) and an argument (template). Calling the schematic with an alias ng g custom-schematic:c template=grid will throw Unknown argument: template grid error. Calling ng g custom-schematic:component template=grid works fine.

Minimal Reproduction

aliased-custom-schematic.zip

  1. Open and unzip the attached sample. It consists of:

    • test-alias custom schematic project, created following the Authoring schematics
      topic. In addition, I have created launch.json file that will help you easily reproduce the problem.
    • test-params project, created with ng new command on which I'm calling the custom schematic, using ng g. In addition, I have executed npm i ts-node in order to be able to debug the custom schematic upon the test-params project.
  2. You can npm i on both projects.

  3. Open the test-alias project and change the paths in the launch.json file, so that it uses your local paths.

  4. Go to Debug & Run tab in VSCode and run the Run schematics:component.

Exception or Error

Error: Unknown argument: template grid
c:\Users\nalipiev\Desktop\15\test-params\node_modules\@angular\cli\lib\cli\index.js:52
Process exited with code 1

Your Environment

Angular CLI: 15.0.4
Node: 16.13.0
Package Manager: npm 8.12.2
OS: win32 x64

Angular:
...

Package                      Version
------------------------------------------------------
@angular-devkit/architect    0.1500.4 (cli-only)
@angular-devkit/core         15.0.4 (cli-only)
@angular-devkit/schematics   15.0.4 (cli-only)
@schematics/angular          15.0.4 (cli-only)

Anything else relevant?

When running the schematic, instead of debugging it, using the way it is described in the Authoring schematics
, it is working.

schematics .:test-alias

However when running it, instead of debugging through the ng g test-alias:c --template=grid it is still not working.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions