Я попытался использовать "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
чтобы не создавать никаких файлов на диске, просто посмотрите обновленный список файлов.
Поскольку он еще не поддерживается с помощью angular CLI
так что вот возможный способ, прежде чем это, обратите внимание, что происходит, когда вы создаете компонент/службу с помощью CLI (например, ng g c demoComponent
).
demoComponent
(ng g c demoComponent
).HTML,CSS,ts
и spec
, предназначенный для demoComponent., поэтому сделайте это в обратном порядке
app.module.ts
В настоящее время Angular CLI не поддерживает возможность удаления компонента, вам нужно сделать это вручную.
Используя код Visual Studio, удалите папку компонента и просмотрите в обозревателе проектов (слева) файлы, которые окрашены в красный цвет, что означает, что файлы затронуты и произвели ошибки. Откройте каждый файл и удалите код, который использует компонент.
Я написал скрипт 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
Я не уверен, что это лучший способ, но это сработало для меня.
Я только что сохранил и обновил приложение, и это сработало.
Ответ на угловой 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 - тот, который импортирует все компоненты, которые вы создали.
Прежде всего, удалите папку компонента, которую вы должны удалить а затем удалите его записи, которые вы сделали в файлах "ts".
Если вы ищете какую-либо команду в CLI, то ans теперь НЕТ. Но вы можете сделать это вручную, удалив папку компонента и все ссылки.
также не забудьте: - удалить путь компонента из модуля маршрутизации - найти имя класса компонента во всем проекте
Мне нужно было удалить директиву Angular 6, спецификационный файл которой был ошибочным. Даже после удаления поврежденных файлов, удаления всех ссылок на него и перестройки приложения TS все равно сообщала об этой же ошибке. Для меня работал перезапуск Visual Studio - это очистило ошибку и все следы старой нежелательной директивы.