İçe aktarılan bir scss klasörünü kitaplığıma nasıl bildirebilirim / dahil edebilirim, böylece uygulamamın scss dosyalarında onu @import çağırabilirim?

Aug 17 2020

Amaç:

Kütüphanemden bir yol eklemeye çalışıyorum, böylece @importuygulamama scss dosyalarını dahil etmek için bir ifade kullanabilirim :

@import "some-scss-in-my-lib"

Sorun:

Ne yazık ki, uygulamamı her sunmaya çalıştığımda aşağıdaki derleyici hatasını alıyorum:

SassError: Can't find stylesheet to import.

Zaten denediğim şey:

  • Stackoverflow'daki aramaya bakmak bana şu anda karşı karşıya olduğumla aynı sorunu tanımlayan bu konuyu getirdi . Ve styleIncludePathstıpkı Zainu'nun önerdiği gibi özelliğe sahip yolu dahil etmeye çalıştım, ancak uygulamayı sunmaya çalışırken, yukarıdaki Sorun Bölümünde açıklandığı gibi tam Soruna girdim .

  • stylePreprocessorOptionsÖzelliği ilk gönderide GreatHawkeye gibi ayarlamaya çalıştım ve @importkullandıktan sonra scss dosyasına mümkün oldu ng build, ancak bunun nasıl ve neden işe yaradığını anlayamıyorum stylePreprocessorOptionsama değil styleIncludePathsmi?

  • Ayrıca google'da arama yapmayı denedim ve bu beni Alan Aguis tarafından bir cevap bulduğum styleIncludePaths seçeneğini kullanarak birleştirilmiş stiller alınamıyor , ancak maalesef styleIncludePaths'in gerçekte ne için olduğu konusunda gerçek bir açıklama yoktu. Alan Aguis'in söylediği tek şey şuydu:

bunun nedeni styleIncludePaths'in başka bir şey için girintilenmiş olmasıdır.

Ama söylendiği gibi, IncludePaths'in tam olarak ne olduğunu söylemedi, bu da beni daha da karıştırdı.

Ayrıca, "styleIncludePaths" nasıl kullanılır? Konuya Stil Ekle Yolları Ekle hakkındaki dokümantasyonla ilgili ng-packagr github sayfasına bakmaya çalıştım, ancak sonuç hala aynıydı ve sorunuma net bir cevap bulamadım.

Bu Sorunla ilgili sorular:

  1. Ng-package.json içindeki styleIncludePaths ne zaman kullanılır? Yalnızca yayınlanmış paketler için mi kullanılıyor?

  2. Angular.json'daki stylePreprocessorOptions ne zaman kullanılır? Dist versiyonu için sadece ng yapıyı çalıştırdıktan sonra mı kullanılıyor ?

  3. Genel olarak styleIncludePaths ile ng-package.json arasındaki stylePreprocessorOptions ile angular.json arasındaki fark nedir?

  4. İçe aktarılan bir scss klasörünü kitaplığıma nasıl bildirebilirim / dahil edebilirim, böylece uygulamamın scss dosyalarında onu @import çağırabilirim?

Önerilerimde yanıldığıma oldukça eminim ancak neler olup bittiğini ve sorunumu nasıl çözeceğimi bilmek istiyorum.

Bu konudaki herhangi bir yardım her zaman olduğu gibi çok takdir edilmektedir! 🙏🏻

Yanıtlar

2 FyZ1K Aug 24 2020 at 19:30

Üzerine cevap olarak github , ben alan-agius4 alıntı :

İçerme yolları, scss / less / stylus dosyalarını işlerken içe aktarmaları çözmek için bir kitaplığın oluşturulması sırasında CSS işlemcileri tarafından kullanılır. Geminizde işlenmemiş scss dosyalarınızda, bu yolların kitaplık düzeyi yerine uygulama düzeyinde dahil edilmesi gerekecektir, çünkü bu tür dosyalar kitaplık derleme ardışık düzeni tarafından değil, uygulamanın. Sadece statik dosyalar olarak kopyalanırlar. Uygulama düzeyinde bu tür yolları dahil etmek istemiyorsanız, web paketinin tilde içe aktarma sözdiziminden yararlanabilirsiniz, örn:

@import "~/my-lib/scss/mixins”.

Not: Web paketine özgü özellikler, Angular takım oluşturma ekibi tarafından resmi olarak desteklenmez ve uyarı yapılmadan bozulabilir.