Passing null options to RunSchematicTask leads to CLI crash #21023
Milestone
Comments
Sounds like a reasonable change to me, but in this case we need to also fix the casting. Maybe even remove it. Feel free to create a PR. |
If no one has taken this Issue yet I would love to use it for my first contribution to angular :) |
@martinakraus, go for it! |
Good afternoon, I hope no one has been working on this issue for 3 months, so raising a PR |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Command (mark with an
x
)Is this a regression?
Yes, the previous version in which this bug was not present was: 11.xDescription
Using
context.addTask(new RunSchematicTask(schematicName, Options))
inside a schematic, we can schedule another schematic. Until (including) Angular 11 we could simply passnull
as secondOptions
parameter.Starting with Angular 12 the CLI will crash with the error message
Cannot read property 'project' of null
.Run a schematic (using
ng add
orng g
) that itself tries to run another schematic usingcontext.addTask(new RunSchematicTask(schematicName, null))
(null
is important here).Since the
ng-add
schematic of@da-mkay/ng-builder-electron
uses the above mentioned code you can use these commands to reproduce the issue:(Version 0.2.0 is important as I will release a new version in a moment)
Anything else relevant?
The issue is caused by the following line inside
SchematicCommand
class:https://github.com/angular/angular-cli/blob/master/packages/angular/cli/models/schematic-command.ts#L247
Here,😉
current
is what we pass as second argument to theRunSchematicTask
constructor (null
). Since that parameter is typed as genericT
, IMHO we should be able to passnull
here. But maybe I'm wrongAs a workaround I can pass
{}
instead ofnull
to theRunSchematicTask
constructor.A solution would be to change the above line to:
(added
?
)I can also create a PR for that gigantic change if needed😋
The text was updated successfully, but these errors were encountered: