I tried using "ng destroy component foo" and it tells me "The destroy command is not supported by Angular-CLI"
How do we properly delete components with Angular CLI?
destroy
or something similar may come to the CLI, but it is not a primary focus at this time. So you will need to do this manually.
Delete the component directory (assuming you didn't use --flat
) and then remove it from the NgModule
in which it is declared.
If you are unsure of what to do, I suggest you have a "clean" app meaning no current git
changes. Then generate a component and see what is changed in the repo so you can backtrack from there what you will need to do to delete a component.
If you're just experimenting about what you want to generate, you can use the --dry-run
flag to not produce any files on disk, just see the updated file list.
Since it is not yet supported using angular CLI
so here is the possible way, before that please observe what happens when you create a component/service using CLI (ex. ng g c demoComponent
).
demoComponent
(ng g c demoComponent
).HTML,CSS,ts
and a spec
file dedicated to demoComponent.so do it in reverse order
app.module.ts
when removing the dependency you have to do two things.
I wrote a bash script that should automate the process written by Yakov Fain below. It can be called like ./removeComponent myComponentName This has only been tested with Angular 6
#!/bin/bash
if [ "$#" -ne 1 ]; then
echo "Input a component to delete"
exit 1
fi
# finds folder with component name and deletes
find . -type d -name $1 | xargs rm -rf
# removes lines referencing the component from app.module.ts
grep -v $1 app.module.ts > temp
mv temp app.module.ts
componentName=$1
componentName+="Component"
grep -v -i $componentName app.module.ts > temp
mv temp app.module.ts
I am not sure if it is the best way, but it worked for me.
I just saved and refreshed the app and it worked.
From app.module.ts:
Then delete the folder of the component you want to delete and its included files (.component.ts
, .component.html
, .component.css
and .component.spec.ts
).
Done.
-
I read people saying about erasing it from main.ts. You were not supposed to import it from there in the first place as it already imports AppModule, and AppModule is the one importing all the components you created.
I needed to delete an Angular 6 directive whose spec file was erroneous. Even after deleting the offending files, removing all references to it and rebuilding the app, TS was still reporting the same error. What worked for me was restarting Visual Studio - this cleared the error and all traces of the old unwanted directive.
This is not supported by Angular CLI and they are in no mood to include it any time soon.
Here is the link to the actual created issue - https://github.com/angular/angular-cli/issues/1776
git checkout src
). – Sanjay Verma