Я попытался использовать «ng destroy component foo», и он сказал мне: «Команда destroy не поддерживается Angular-CLI»
Как правильно удалять компоненты с помощью Angular CLI?
Я попытался использовать «ng destroy component foo», и он сказал мне: «Команда destroy не поддерживается Angular-CLI»
Как правильно удалять компоненты с помощью Angular CLI?
Ответы:
destroy
или что-то подобное может прийти к CLI, но это не основной задачей в настоящее время. Так что вам нужно будет сделать это вручную.
Удалите каталог компонента (если вы его не использовали --flat
), а затем удалите его из того, NgModule
в котором он объявлен.
Если вы не уверены в том, что делать, я предлагаю вам «чистое» приложение, означающее отсутствие текущих git
изменений. Затем сгенерируйте компонент и посмотрите, что изменилось в репо, чтобы вы могли оттуда вернуться, что вам нужно будет сделать, чтобы удалить компонент.
Если вы просто экспериментируете с тем, что вы хотите сгенерировать, вы можете использовать --dry-run
флаг, чтобы не создавать никаких файлов на диске, просто посмотрите обновленный список файлов.
Так как он еще не поддерживается с помощью углового интерфейса командной строки
Итак, вот возможный способ, прежде чем, пожалуйста, посмотрите, что происходит, когда вы создаете компонент / сервис с помощью CLI (ex. ng g c demoComponent
).
demoComponent
( ng g c demoComponent
).HTML,CSS,ts
и spec
файл, посвященный demoComponent.так что делай это в обратном порядке
app.module.ts
при удалении зависимости нужно сделать две вещи.
В настоящее время Angular CLI не поддерживает опцию удаления компонента, вам нужно сделать это вручную.
Я написал скрипт bash, который должен автоматизировать процесс, написанный Яковом Файном ниже. Это можно назвать как ./removeComponent myComponentName. Это было проверено только с 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
Я не уверен, что это лучший способ, но он сработал для меня.
Я просто сохранил и обновил приложение, и оно заработало.
Ответ для Angular 2+
Удалить компонент from imports and declaration array
app.modules.ts.
Во-вторых, проверьте, что его ссылка добавлена в другой модуль. Если да, удалите его
наконец delete that component Manually
из приложения, и все готово.
Или вы можете сделать это в обратном порядке.
Из app.module.ts:
Затем удалите папку компонента , который вы хотите удалить , и его Включаемые файлы ( .component.ts
, .component.html
, .component.css
и .component.spec.ts
).
Готово.
-
Я читаю людей, говорящих о стирании его с main.ts. Вы не должны были импортировать его оттуда, так как он уже импортирует AppModule, а AppModule - это тот, который импортирует все созданные вами компоненты.
Мне нужно было удалить директиву Angular 6, спецификационный файл которой был ошибочным. Даже после удаления поврежденных файлов, удаления всех ссылок на него и перестройки приложения TS все равно сообщала об этой же ошибке. Для меня сработало перезапуск Visual Studio - это очистило ошибку и все следы старой нежелательной директивы.
Если вы ищете какую-то команду в CLI, тогда ans пока НЕТ . Но вы можете сделать это вручную, удалив папку компонента и все ссылки.
Это не поддерживается Angular CLI, и они не собираются включать его в ближайшее время.
Вот ссылка на актуально созданную проблему - https://github.com/angular/angular-cli/issues/1776
git checkout src
).