Подтвердить что ты не робот

Каков наилучший способ удаления компонента с помощью CLI

Я попытался использовать "ng destroy component foo", и он говорит мне: "Команда destroy не поддерживается Angular -CLI"

Как правильно удалить компоненты с помощью Angular CLI?

4b9b3361

Ответ 1

destroy или что-то подобное может прийти к CLI, но это не основной задачей в настоящее время. Так что вам нужно будет сделать это вручную.

Удалите каталог компонента (при условии, что вы не использовали --flat), а затем удалите его из NgModule в котором он объявлен.

Если вы не знаете, что делать, я предлагаю вам "чистое" приложение, означающее отсутствие текущих изменений в git. Затем сгенерируйте компонент и посмотрите, что изменилось в репозитории, чтобы вы могли оттуда вернуться, что вам нужно будет сделать, чтобы удалить компонент.

Обновить

Если вы просто экспериментируете с тем, что вы хотите сгенерировать, вы можете использовать флаг --dry-run чтобы не создавать никаких файлов на диске, просто посмотрите обновленный список файлов.

Ответ 2

  • Удалить папку, содержащую этот компонент.
  • В app.module.ts удалить оператор импорта для этого компонента и удалить его имя из раздела объявления @NgModule
  • Удалите строку с инструкцией экспорта для этого компонента из index.ts.

Ответ 3

Поскольку он еще не поддерживается с помощью angular CLI

так что вот возможный способ, прежде чем это, обратите внимание, что происходит, когда вы создаете компонент/службу с помощью CLI (например, ng g c demoComponent).

  • Создает отдельную папку с именем demoComponent (ng g c demoComponent).
  • Он генерирует файл HTML,CSS,ts и spec, предназначенный для demoComponent.
  • Кроме того, он добавляет зависимость внутри файла app.module.ts, чтобы добавить этот компонент в ваш проект.

, поэтому сделайте это в обратном порядке

  • Удалить зависимость от app.module.ts
  • Удалить эту папку компонента.

Ответ 4

В настоящее время Angular CLI не поддерживает возможность удаления компонента, вам нужно сделать это вручную.

  • Удалить ссылки на импорт для каждого компонента из приложения .module
  • Удалить папки компонентов.

Ответ 5

Используя код Visual Studio, удалите папку компонента и просмотрите в обозревателе проектов (слева) файлы, которые окрашены в красный цвет, что означает, что файлы затронуты и произвели ошибки. Откройте каждый файл и удалите код, который использует компонент.

Ответ 6

Я написал скрипт 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

Ответ 7

Я не уверен, что это лучший способ, но это сработало для меня.

  • Сначала я удалил папку компонента.
  • Затем я очистил app.module.ts, app.component.ts и app.component.html импорта и деклараций, связанных с компонентом, который я хотел удалить.
  • Аналогично, я очистил main.ts.

Я только что сохранил и обновил приложение, и это сработало.

Ответ 8

Ответ на угловой 2+

Удалить компонент from imports and declaration array app.modules.ts.

Во-вторых, проверьте, что его ссылка добавлена в другой модуль, если да, то удалите его и

наконец, delete that component Manually из приложения, и все готово.

Или вы можете сделать это в обратном порядке.

Ответ 9

Из app.module.ts:

  • удалить строку импорта для конкретного компонента;
  • удалить свое объявление из @NgModule;

Затем удалите папку компонента, который вы хотите удалить, и его включенные файлы (.component.ts, .component.html, .component.css и .component.spec.ts).

Готово.

-

Я читаю людей, говорящих о его стирании с main.ts. Вы не должны были импортировать его оттуда, поскольку он уже импортирует AppModule, а AppModule - тот, который импортирует все компоненты, которые вы создали.

Ответ 10

Прежде всего, удалите папку компонента, которую вы должны удалить а затем удалите его записи, которые вы сделали в файлах "ts".

Ответ 11

Если вы ищете какую-либо команду в CLI, то ans теперь НЕТ. Но вы можете сделать это вручную, удалив папку компонента и все ссылки.

Ответ 12

также не забудьте: - удалить путь компонента из модуля маршрутизации - найти имя класса компонента во всем проекте

Ответ 13

Мне нужно было удалить директиву Angular 6, спецификационный файл которой был ошибочным. Даже после удаления поврежденных файлов, удаления всех ссылок на него и перестройки приложения TS все равно сообщала об этой же ошибке. Для меня работал перезапуск Visual Studio - это очистило ошибку и все следы старой нежелательной директивы.