"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:
destroyveya 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 gitdeğ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-runbayrağı 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,tsve specdemoComponent adanmış bir dosya.bu yüzden ters sırayla yapın
app.module.tsbağı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.cssve .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 .