Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
1 task done
Lipata opened this issue Jan 11, 2023 · 1 comment · Fixed by #24542
Closed
1 task done
Assignees
Labels
area: @angular/cli freq1: low Only reported by a handful of users who observe it rarely severity5: regression type: bug/fix

Comments

@Lipata
Copy link

Lipata commented Jan 11, 2023

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.

@alan-agius4 alan-agius4 added freq1: low Only reported by a handful of users who observe it rarely severity5: regression type: bug/fix labels Jan 12, 2023
@alan-agius4 alan-agius4 self-assigned this Jan 12, 2023
alan-agius4 added a commit to alan-agius4/angular-cli that referenced this issue Jan 13, 2023
…on name in `ng generate`.

Previously, schematic aliases were not registered when a collection name was provided to `ng generate`.  Example: `ng generate c` where `c` is an alias for `component` would work, but `ng generate @schematics/angular:c` would fail. This commits fixes the schematic registration to handle the latter case.

Closes angular#24518
alan-agius4 added a commit to alan-agius4/angular-cli that referenced this issue Jan 13, 2023
…on name in `ng generate`.

Previously, schematic aliases were not registered when a collection name was provided to `ng generate`.  Example: `ng generate c` where `c` is an alias for `component` would work, but `ng generate @schematics/angular:c` would fail. This commits fixes the schematic registration to handle the latter case.

Closes angular#24518
alan-agius4 added a commit to alan-agius4/angular-cli that referenced this issue Jan 13, 2023
…on name in `ng generate`.

Previously, schematic aliases were not registered when a collection name was provided to `ng generate`.  Example: `ng generate c` where `c` is an alias for `component` would work, but `ng generate @schematics/angular:c` would fail. This commits fixes the schematic registration to handle the latter case.

Closes angular#24518
alan-agius4 added a commit to alan-agius4/angular-cli that referenced this issue Jan 13, 2023
…on name in `ng generate`

Previously, schematic aliases were not registered when a collection name was provided to `ng generate`.  Example: `ng generate c` where `c` is an alias for `component` would work, but `ng generate @schematics/angular:c` would fail. This commits fixes the schematic registration to handle the latter case.

Closes angular#24518
alan-agius4 added a commit to alan-agius4/angular-cli that referenced this issue Jan 13, 2023
…on name in `ng generate`

Previously, schematic aliases were not registered when a collection name was provided to `ng generate`.  Example: `ng generate c` where `c` is an alias for `component` would work, but `ng generate @schematics/angular:c` would fail. This commits fixes the schematic registration to handle the latter case.

Closes angular#24518
angular-robot bot pushed a commit that referenced this issue Jan 13, 2023
…on name in `ng generate`

Previously, schematic aliases were not registered when a collection name was provided to `ng generate`.  Example: `ng generate c` where `c` is an alias for `component` would work, but `ng generate @schematics/angular:c` would fail. This commits fixes the schematic registration to handle the latter case.

Closes #24518
angular-robot bot pushed a commit that referenced this issue Jan 13, 2023
…on name in `ng generate`

Previously, schematic aliases were not registered when a collection name was provided to `ng generate`.  Example: `ng generate c` where `c` is an alias for `component` would work, but `ng generate @schematics/angular:c` would fail. This commits fixes the schematic registration to handle the latter case.

Closes #24518

(cherry picked from commit 3ebb195)
@angular-automatic-lock-bot
Copy link

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

This action has been performed automatically by a bot.

@angular-automatic-lock-bot angular-automatic-lock-bot bot locked and limited conversation to collaborators Feb 13, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area: @angular/cli freq1: low Only reported by a handful of users who observe it rarely severity5: regression type: bug/fix
Projects
None yet
2 participants