Ich habe versucht, "ng destroy component foo" zu verwenden und es sagt mir "Der Befehl destroy wird von Angular-CLI nicht unterstützt".
Wie löschen wir Komponenten mit Angular CLI ordnungsgemäß?
Ich habe versucht, "ng destroy component foo" zu verwenden und es sagt mir "Der Befehl destroy wird von Angular-CLI nicht unterstützt".
Wie löschen wir Komponenten mit Angular CLI ordnungsgemäß?
Antworten:
destroy
oder etwas Ähnliches kann zur CLI kommen, aber es ist derzeit kein primärer Fokus. Sie müssen dies also manuell tun.
Löschen Sie das Komponentenverzeichnis (vorausgesetzt, Sie haben es nicht verwendet --flat
) und entfernen Sie es aus dem Verzeichnis, NgModule
in dem es deklariert ist.
Wenn Sie sich nicht sicher sind, was Sie tun sollen, empfehlen wir Ihnen eine "saubere" App, die keine aktuellen git
Änderungen enthält. Generieren Sie dann eine Komponente und sehen Sie, was im Repo geändert wurde, damit Sie von dort aus zurückverfolgen können, was Sie zum Löschen einer Komponente tun müssen.
Wenn Sie nur experimentieren, was Sie generieren möchten, können Sie das --dry-run
Flag verwenden, um keine Dateien auf der Festplatte zu erstellen. Sehen Sie sich einfach die aktualisierte Dateiliste an.
Da es mit Angular CLI noch nicht unterstützt wird
Hier ist also die Möglichkeit, vorher zu beobachten, was passiert, wenn Sie eine Komponente / einen Dienst mit CLI erstellen (z. B. ng g c demoComponent
).
demoComponent
( ng g c demoComponent
) erstellt.HTML,CSS,ts
und eine spec
Datei für demoComponent.Also mach es in umgekehrter Reihenfolge
app.module.ts
Wenn Sie die Abhängigkeit entfernen, müssen Sie zwei Dinge tun.
Derzeit unterstützt Angular CLI keine Option zum Entfernen der Komponente. Sie müssen dies manuell tun.
Ich habe ein Bash-Skript geschrieben, das den von Yakov Fain unten geschriebenen Prozess automatisieren soll. Es kann wie folgt aufgerufen werden: ./removeComponent myComponentName Dies wurde nur mit Angular 6 getestet
#!/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
Ich bin mir nicht sicher, ob es der beste Weg ist, aber es hat bei mir funktioniert.
Ich habe gerade die App gespeichert und aktualisiert und es hat funktioniert.
Antwort für Angular 2+
Entfernen Sie die Komponente from imports and declaration array
von app.modules.ts.
Zweitens überprüfen Sie, ob die Referenz in einem anderen Modul hinzugefügt wurde. Wenn ja, entfernen Sie sie und
endlich delete that component Manually
aus der app und du bist fertig.
Oder Sie können es auch in umgekehrter Reihenfolge tun.
Von app.module.ts:
Dann löschen Sie den Ordner der Komponente , die Sie löschen möchten, und seine darin enthaltenen Dateien ( .component.ts
, .component.html
, .component.css
und .component.spec.ts
).
Getan.
- -
Ich habe Leute gelesen, die über das Löschen von main.ts gesagt haben. Sie sollten es zunächst nicht von dort importieren, da es bereits AppModule importiert und AppModule alle von Ihnen erstellten Komponenten importiert.
Ich musste eine Angular 6-Direktive löschen, deren Spezifikationsdatei fehlerhaft war. Auch nach dem Löschen der fehlerhaften Dateien, dem Entfernen aller Verweise darauf und dem erneuten Erstellen der App meldete TS immer noch denselben Fehler. Was für mich funktioniert hat, war ein Neustart von Visual Studio - dies löschte den Fehler und alle Spuren der alten unerwünschten Direktive.
Entfernen Sie zunächst den Komponentenordner, den Sie löschen müssen, und entfernen Sie dann die Einträge, die Sie in "ts" -Dateien vorgenommen haben.
Wenn Sie in der CLI nach einem Befehl suchen, ist ans vorerst NEIN . Sie können dies jedoch manuell tun, indem Sie den Komponentenordner und alle Referenzen löschen .
Dies wird von Angular CLI nicht unterstützt und sie sind nicht in der Stimmung, es bald aufzunehmen.
Hier ist der Link zum tatsächlich erstellten Problem - https://github.com/angular/angular-cli/issues/1776
git checkout src
) git-Check-outs durchführen .