"Ng destroy bileşen foo" kullanmayı denedim ve bana "destroy komutu Angular-CLI tarafından desteklenmiyor"
Açısal CLI ile bileşenleri nasıl düzgün bir şekilde silebiliriz?
"Ng destroy bileşen foo" kullanmayı denedim ve bana "destroy komutu Angular-CLI tarafından desteklenmiyor"
Açısal CLI ile bileşenleri nasıl düzgün bir şekilde silebiliriz?
Yanıtlar:
destroy
veya CLI'ye benzer bir şey gelebilir, ancak şu anda birincil odak noktası değildir. Yani bunu manuel olarak yapmanız gerekecek.
Bileşen dizinini silin (kullanmadığınız varsayılarak --flat
) ve ardından bildirildiği dizinden kaldırın NgModule
.
Ne yapacağınızdan emin değilseniz, güncel bir git
değişiklik olmadığı anlamına gelen "temiz" bir uygulamanız olmasını öneririm . Daha sonra bir bileşen oluşturun ve repoda nelerin değiştiğini görün, böylece bir bileşeni silmek için yapmanız gerekeni oradan geri takip edebilirsiniz.
Yalnızca oluşturmak istediğiniz şeyleri deniyorsanız, --dry-run
bayrağı kullanarak diskte dosya oluşturmazsınız, sadece güncellenen dosya listesine bakın.
Açısal CLI kullanılarak henüz desteklenmediğinden
işte mümkün olan yol, bundan önce CLI (ör. ng g c demoComponent
) kullanarak bir bileşen / hizmet oluşturduğunuzda neler olduğuna dikkat edin .
demoComponent
( ng g c demoComponent
) Adında ayrı bir klasör oluşturur .HTML,CSS,ts
ve spec
demoComponent adanmış bir dosya.bu yüzden ters sırayla yapın
app.module.ts
bağımlılığı ortadan kaldırırken iki şey yapmanız gerekir.
Şu anda Açısal CLI bileşeni kaldırma seçeneğini desteklemiyor, manuel olarak yapmanız gerekiyor.
Aşağıda Yakov Fain tarafından yazılan süreci otomatikleştirmesi gereken bir bash senaryosu yazdım. ./RemoveComponent myComponentName gibi çağrılabilir. Bu yalnızca Açısal 6 ile test edilmiştir.
#!/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
En iyi yol olup olmadığından emin değilim, ama benim için çalıştı.
Uygulamayı yeni kaydettim ve yeniledim ve işe yaradı.
App.module.ts sitesinden:
Sonra sil ve onun dahil dosyaları istediğiniz bileşenin klasörü silin ( .component.ts
, .component.html
, .component.css
ve .component.spec.ts
).
Bitti.
-
Bunu main.ts'den silme hakkında söyleyen insanları okudum. Önceden AppModule'yi içe aktardığı için onu oradan içe aktarmanız gerekmiyordu ve AppModule, oluşturduğunuz tüm bileşenleri içe aktarıyor.
Spec dosyası hatalı olan bir Açısal 6 yönergesini silmem gerekiyordu. Rahatsız edici dosyaları sildikten, dosyaya yapılan tüm referansları kaldırdıktan ve uygulamayı yeniden oluşturduktan sonra bile TS yine aynı hatayı bildiriyordu. Benim için işe yarayan Visual Studio'yu yeniden başlatmaktı - bu, hatayı ve eski istenmeyen direktifin tüm izlerini temizledi.
CLI'da bir komut arıyorsanız, o zaman ans şimdilik NO'dur . Ancak bileşen klasörünü ve tüm başvuruları silerek manuel olarak yapabilirsiniz .
Bu, Açısal CLI tarafından desteklenmez ve yakın zamanda ekleyecekleri bir ruh hali yoktur.
İşte asıl yaratılan sorunun bağlantısı - https://github.com/angular/angular-cli/issues/1776
git checkout src
) git kontrolü yapabilirsiniz .