Eu tentei usar "ng destroy component foo" e ele me diz "O comando destroy não é suportado pelo Angular-CLI"
Como podemos excluir corretamente os componentes com o Angular CLI?
Eu tentei usar "ng destroy component foo" e ele me diz "O comando destroy não é suportado pelo Angular-CLI"
Como podemos excluir corretamente os componentes com o Angular CLI?
Respostas:
destroy
ou algo semelhante pode chegar à CLI, mas não é o foco principal no momento. Então você precisará fazer isso manualmente.
Exclua o diretório de componentes (supondo que você não tenha usado --flat
) e remova-o do diretório NgModule
em que está declarado.
Se você não tiver certeza do que fazer, sugiro que você tenha um aplicativo "limpo", o que significa que não há git
alterações atuais . Em seguida, gere um componente e veja o que foi alterado no repositório para que você possa voltar a partir daí o que precisará fazer para excluir um componente.
Se você está apenas experimentando o que deseja gerar, pode usar o --dry-run
sinalizador para não produzir nenhum arquivo em disco; basta ver a lista de arquivos atualizada.
Como ainda não é suportado usando CLI angular
então, aqui está a maneira possível: antes disso, observe o que acontece quando você cria um componente / serviço usando a CLI (ex. ng g c demoComponent
).
demoComponent
( ng g c demoComponent
).HTML,CSS,ts
e um spec
arquivo dedicado ao demoComponent.faça-o na ordem inversa
app.module.ts
ao remover a dependência, você deve fazer duas coisas.
Atualmente, a Angular CLI não suporta uma opção para remover o componente, você precisa fazê-lo manualmente.
Eu escrevi um script bash que deve automatizar o processo escrito por Yakov Fain abaixo. Pode ser chamado como ./removeComponent myComponentName Isso foi testado apenas com o 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
Não tenho certeza se é o melhor caminho, mas funcionou para mim.
Acabei de salvar e atualizar o aplicativo e ele funcionou.
Resposta para Angular 2+
Remova o componente from imports and declaration array
de app.modules.ts.
Segundo cheque, sua referência é adicionada em outro módulo; se sim, remova-o e
finalmente delete that component Manually
do aplicativo e pronto.
Ou você pode fazer isso na ordem inversa também.
Em app.module.ts:
Em seguida, exclua a pasta do componente que deseja excluir e seus arquivos incluídos ( .component.ts
, .component.html
, .component.css
e .component.spec.ts
).
Feito.
-
Eu li pessoas dizendo sobre apagá-lo do main.ts. Você não deveria importá-lo de lá em primeiro lugar, pois ele já importa o AppModule, e AppModule é o único que importa todos os componentes que você criou.
Eu precisava excluir uma diretiva Angular 6 cujo arquivo de especificações estivesse errado. Mesmo depois de excluir os arquivos incorretos, remover todas as referências a ele e reconstruir o aplicativo, o TS ainda estava relatando o mesmo erro. O que funcionou para mim foi reiniciar o Visual Studio - isso limpou o erro e todos os vestígios da antiga diretiva indesejada.
Primeiro, remova a pasta do componente, que você deve excluir e, em seguida, remova as entradas que você criou nos arquivos "ts".
Se você está procurando algum comando na CLI, então ans é NO por enquanto. Mas você pode fazer isso manualmente excluindo a pasta do componente e todas as referências.
Isso não é suportado pelo Angular CLI e eles não estão dispostos a incluí-lo tão cedo.
Aqui está o link para o problema real criado - https://github.com/angular/angular-cli/issues/1776
git checkout src
).