Intenté usar "ng destroy component foo" y me dice "El comando de destrucción no es compatible con Angular-CLI"
¿Cómo eliminamos correctamente los componentes con Angular CLI?
Intenté usar "ng destroy component foo" y me dice "El comando de destrucción no es compatible con Angular-CLI"
¿Cómo eliminamos correctamente los componentes con Angular CLI?
Respuestas:
destroy
o algo similar puede llegar a la CLI, pero no es un enfoque principal en este momento. Por lo tanto, deberá hacer esto manualmente.
Elimine el directorio de componentes (suponiendo que no haya utilizado --flat
) y luego quítelo del lugar NgModule
en el que se declara.
Si no está seguro de qué hacer, le sugiero que tenga una aplicación "limpia", lo que significa que no hay git
cambios actuales . Luego, genere un componente y vea qué cambia en el repositorio para que pueda retroceder desde allí lo que deberá hacer para eliminar un componente.
Si solo está experimentando sobre lo que desea generar, puede usar el --dry-run
indicador para no producir ningún archivo en el disco, solo vea la lista de archivos actualizada.
Como todavía no es compatible con CLI angular
así que aquí está la forma posible, antes de eso, observe lo que sucede cuando crea un componente / servicio usando CLI (ej. ng g c demoComponent
).
demoComponent
( ng g c demoComponent
).HTML,CSS,ts
y un spec
archivo dedicado a demoComponent.entonces hazlo en orden inverso
app.module.ts
Al eliminar la dependencia, tienes que hacer dos cosas.
Actualmente, Angular CLI no admite una opción para eliminar el componente, debe hacerlo manualmente.
Escribí un script bash que debería automatizar el proceso escrito por Yakov Fain a continuación. Se puede llamar como ./removeComponent myComponentName Esto solo se ha probado con 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
No estoy seguro de si es la mejor manera, pero funcionó para mí.
Acabo de guardar y actualizar la aplicación y funcionó.
Respuesta para Angular 2+
Eliminar componente from imports and declaration array
de app.modules.ts.
En segundo lugar, compruebe que su referencia se agrega en otro módulo, en caso afirmativo, elimínelo
finalmente delete that component Manually
desde la aplicación y ya está.
O puede hacerlo también en orden inverso.
Desde app.module.ts:
A continuación, elimine la carpeta del componente que desee eliminar y sus archivos incluidos ( .component.ts
, .component.html
, .component.css
y .component.spec.ts
).
Hecho.
-
Leí gente que decía sobre borrarlo de main.ts. Se suponía que no debía importarlo desde allí en primer lugar, ya que ya importa AppModule, y AppModule es el que importa todos los componentes que creó.
Necesitaba eliminar una directiva Angular 6 cuyo archivo de especificaciones era erróneo. Incluso después de eliminar los archivos ofensivos, eliminar todas las referencias y reconstruir la aplicación, TS seguía informando el mismo error. Lo que funcionó para mí fue reiniciar Visual Studio: esto eliminó el error y todos los rastros de la antigua directiva no deseada.
En primer lugar, elimine la carpeta de componentes, que debe eliminar y luego elimine las entradas que ha realizado en los archivos "ts".
Si está buscando algún comando en la CLI, entonces ans es NO por ahora. Pero puede hacerlo manualmente eliminando la carpeta del componente y todas las referencias.
Angular CLI no admite esto y no están de humor para incluirlo en el corto plazo.
Aquí está el enlace al problema creado real: https://github.com/angular/angular-cli/issues/1776
Y una captura de pantalla de la solución de los funcionarios:
git checkout src
).