Próbowałem użyć „ng zniszczyć składnik foo” i mówi mi: „Polecenie zniszczenia nie jest obsługiwane przez Angular-CLI”
Jak właściwie usuwamy komponenty za pomocą Angular CLI?
angular
angular-cli
Jus10
źródło
źródło
git checkout src
).Odpowiedzi:
destroy
lub coś podobnego może przyjść do CLI, ale obecnie nie jest to główny cel. Musisz to zrobić ręcznie.Usuń katalog komponentów (zakładając, że nie korzystałeś
--flat
), a następnie usuń go z tego,NgModule
w którym został zadeklarowany.Jeśli nie masz pewności, co robić, sugeruję, aby mieć „czystą” aplikację, co oznacza brak bieżących
git
zmian. Następnie wygeneruj komponent i zobacz, co zostało zmienione w repozytorium, abyś mógł stamtąd cofnąć się, co musisz zrobić, aby usunąć komponent.Aktualizacja
Jeśli eksperymentujesz tylko z tym, co chcesz wygenerować, możesz użyć
--dry-run
flagi, aby nie tworzyć żadnych plików na dysku, po prostu zobacz zaktualizowaną listę plików.źródło
źródło
Ponieważ nie jest jeszcze obsługiwany przy użyciu kątowego interfejsu CLI
więc jest to możliwy sposób, przed tym proszę obserwować, co się dzieje, gdy tworzysz komponent / usługę za pomocą CLI (np.
ng g c demoComponent
).demoComponent
(ng g c demoComponent
).HTML,CSS,ts
ispec
plik dedykowany demoComponent.więc zrób to w odwrotnej kolejności
app.module.ts
usuwając zależność, musisz zrobić dwie rzeczy.
źródło
Za pomocą programu Visual Studio Code usuń folder komponentu i zobacz w Eksploratorze projektów (po lewej stronie) pliki, które są w kolorze czerwonym, co oznacza, że pliki zostały naruszone i wystąpiły błędy. Otwórz każdy plik i usuń kod korzystający ze składnika.
źródło
Obecnie Angular CLI nie obsługuje opcji usuwania komponentu, musisz to zrobić ręcznie.
źródło
Napisałem poniżej skrypt bash, który powinien zautomatyzować proces napisany przez Jakowa Faina. Można go nazwać jak ./removeComponent myComponentName Zostało to przetestowane tylko w Angular 6
źródło
Nie jestem pewien, czy to najlepszy sposób, ale mi się udało.
Właśnie zapisałem i odświeżyłem aplikację i działała.
źródło
Odpowiedz na Angular 2+
Usuń składnik
from imports and declaration array
app.modules.ts.Po drugie sprawdź, czy odniesienie zostało dodane w innym module, jeśli tak, usuń go i
Wreszcie
delete that component Manually
z aplikacji i gotowe.Lub możesz to zrobić również w odwrotnej kolejności.
źródło
Z app.module.ts:
Następnie usuń folder komponentu, który chcesz usunąć, a jego ujęte plików (
.component.ts
,.component.html
,.component.css
i.component.spec.ts
).Gotowe.
-
Czytam ludzi mówiących o usunięciu go z main.ts. Nie miałeś zaimportować go stamtąd, ponieważ już importuje AppModule, a AppModule importuje wszystkie utworzone przez ciebie komponenty.
źródło
Musiałem usunąć dyrektywę Angular 6, której plik specyfikacji był błędny. Nawet po usunięciu szkodliwych plików, usunięciu wszystkich odniesień do niego i przebudowaniu aplikacji, TS nadal zgłaszał ten sam błąd. Dla mnie zadziałało ponowne uruchomienie Visual Studio - to usunęło błąd i wszystkie ślady starej niechcianej dyrektywy.
źródło
Przede wszystkim usuń folder komponentu, który musisz usunąć, a następnie usuń jego wpisy, które wprowadziłeś w plikach „ts”.
źródło
Jeśli szukasz komendy w CLI, to Ans jest NIE teraz. Ale możesz to zrobić ręcznie, usuwając folder komponentu i wszystkie odniesienia.
źródło
Nie jest to obsługiwane przez Angular CLI i nie są w nastroju do włączenia go w najbliższym czasie.
Oto link do faktycznie utworzonego problemu - https://github.com/angular/angular-cli/issues/1776
I zrzut ekranu rozwiązania od urzędników -
źródło