typescript - Ionic 4 + Angular 6 PWA Stilleri çalışmıyor/bozuk
Umarım biri burada bana yardım edebilir.
Angular 6 pwa kullanan bir Ionic 4 uygulamam var. Çalıştırmak için bu gönderideki adımları takip ettim
https://www.joshmorony.com/create-a-pwa-with-angular-service-workers-in-ionic-4/
Tüm adımlar sorunsuz tamamlanıyor ve ayrıca paket doğru bir şekilde derlenip çalışıyor, hatasız.
Ancak tüm kontrole özgü stilimler eksik örn
benim-kontrol.component.scss
app-my-contol {
ion-content {
background-color: var(--light-gray-lightest);
}
.my-class {
padding:0;
list-style: none;
position: absolute;
width: 100%;
left: 0;
}
}
Dosyaların doğru şekilde karmalandığını görebilirsiniz ve herhangi bir dosyanın eksik olduğunu önerecek bir 404 yok. --prod olmadan normal bir ionic cordova build yapmak, stillerin tekrar çalışmasını sağlayacaktır.
Her türlü yardım takdir edilir!
Düzenle -- hızlı güncelleme.
Görünüşe göre eksik stiller main_xxxxxxxxx.js dosyasında bulunuyor. Aşağıda örnek bir snippet var
var z = r.La({
encapsulation: 0,
styles: [["app-family-visit[_ngcontent-%COMP%] .visit-details-family-view[_ngcontent-%COMP%]{margin-top:20px}@media (max-width:480px){app-family-visit[_ngcontent-%COMP%] .visit-details-family-view[_ngcontent-%COMP%]{margin-top:10px}}app-family-visit[_ngcontent-%COMP%] .visit-details-family-view[_ngcontent-%COMP%] #title[_ngcontent-%COMP%]{margin-bottom:20px}app-family-visit[_ngcontent-%COMP%] .datetime-md[_ngcontent-%COMP%]{padding-left:0}.verification_page[_ngcontent-%COMP%]{padding-top:15px}"]],
data: {}
});
Ve bu dosya yükleniyor, ama bir nedenle göz ardı ediliyor
Başka Bir Güncelleme
İlginç olan, non-PWA sürümünde main.js içinde bunun böyle görünmesi.
/*!****************************************************************!*\
!*** ./src/app/case/pages/family-visit/family-visit.page.scss ***!
\****************************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
module.exports = "app-family-visit .visit-details-family-view {\n margin-top: 20px; }\n @media (max-width: 480px) {\n app-family-visit .visit-details-family-view {\n margin-top: 10px; } }\n app-family-visit .visit-details-family-view #title {\n margin-bottom: 20px; }\n app-family-visit .datetime-md {\n padding-left: 0; }\n .verification_page {\n padding-top: 15px; }\n"
/***/ }),
Yani pwa derlemesi bu [_ngcontent-%COMP%] işaretleyicilerini satır içi olarak ekler
Cevap #1
Ionic 4 ve Angular 6'dan itibaren, sayfa/bileşen etiketini kaldırmanız gerekiyor. Lütfen Ionic 4'e Geçiş bölümüne bakın -> https://beta.ionicframework.com/docs/building/migration/#overview
Sayfa/bileşen Sass artık sayfa/bileşen etiketi ile sarılmamalı ve @Component dekoratörünün styleUrls seçeneğini kullanmalıdır
Yani bu bir hata değil ve her şey beklendiği gibi çalışıyor! Lütfen geçiş rehberini okuyun ve sarmalayıcıyı kaldırın, her şey tekrar çalışacaktır.
Cevap #2
Bu konuda biraz ilerleme kaydettim ve şimdilik kendi sorumu kendim cevaplayacağım.
scss dosyalarındaki öğe seçicilerle ilgili bir sorun gibi görünüyor
Yani eğer benim böyle bir scss'im varsa
app-visit {
.visit-details {
margin-top: 20px;
@include mobile-only {
margin-top: 10px;
}
}
.email-share {
margin-top: 15px;
}
.hidden-email {
display: none;
&.active {
display: block;
}
.side-content
{
border-left: 1px solid gray;
}
}
}
PWA derlemesi, o bileşenin stillerini dahil edemiyor
Eğer app-visit sarmalayıcısını kaldırırsam, PWA yapısında çalışıyor!
Burada anlamadığım daha derin bir sorun olduğunu tahmin ediyorum ama Ionic ve Angular ekipleriyle bazı gönderiler yapacağım.
Ama bunu yaşıyorsanız, bu şimdilik iyi bir geçici çözüm.
