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äß?
angular
angular-cli
Jus10
quelle
quelle
git checkout src
) git-Check-outs durchführen .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.Aktualisieren
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.quelle
quelle
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 einespec
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.
quelle
Löschen Sie mit Visual Studio Code den Komponentenordner und sehen Sie im Projektexplorer (linke Seite) die rot gefärbten Dateien, was bedeutet, dass die Dateien betroffen sind und Fehler verursachen. Öffnen Sie jede Datei und entfernen Sie den Code, der die Komponente verwendet.
quelle
Derzeit unterstützt Angular CLI keine Option zum Entfernen der Komponente. Sie müssen dies manuell tun.
quelle
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
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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 .
quelle
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
Und ein Screenshot der Lösung von den Beamten -
quelle