_Minicart.less gibi web / css / source / module'da daha az bulunan modülü genişletmenin en iyi yolu?


15

Öyleyse, <module>/web/css/source/module/örneğin daha az dosya içeriğini genişletmenin en iyi yolu Magento_Checkout/web/css/source/module/_minicart.lesshangisidir?

Bunu varsayarak

A) AŞIRI GEÇİŞ

  1. temayla ilgili daha az , ana temanın aynı adıyla daha az oluşturmalı (veya kopyalamalısınız) ve temanıza böyle koymalısınız theme-frontend-blank/web/css/source/_buttons.less-><your-theme>/web/css/source/_buttons.less
  2. modüle özgü daha az ana temanın aynı adıyla daha az oluşturmalı (veya kopyalamalısınız) ve temanıza böyle koymalısınız theme-frontend-blank/Magento_Theme/web/css/source/_module.less-><your-theme>Magento_Theme/web/css/source/_module.less
  3. Daha az UI lib kütüphane klasöründe aynı ad içeriğiyle daha az oluşturmalı (veya kopyalamalısınız) ve temanıza böyle koymalısınız magento2-base/lib/web/css/source/lib/_buttons.less-><your-theme>Magento_Theme/web/css/source/lib/_buttons.less

ve

B) UZAT

  1. daha az ilgili tema ekleyerek temanızın bir _extend.less dosyası oluşturmak gerekir _extend böyle adına <your-theme>/web/css/source/_navigation_extend.lessuzatmak theme-frontend-blank/web/css/source/_navigation.lessVE ile bu dosyayı kaydetmek @import web / css / kaynakta tema içeriğinin _extend.less içinde direktifi ->@import "_navigation_extend.less"
  2. modüle özgü daha az tema modülü yolunda <your-theme>Magento_CatalogSearch/web/css/source/_extend.lessMagento_CatalogSearch orijinal _module.less genişleten bir _extend.less dosya oluşturmanız gerekir
  3. UI lib az kütüphane klasöründe aynı ad içeriği ile daha az oluşturmak gerekir böyle genişletmek için böyle bir isim _extend eklemek ve web / css / kaynak tema içeriğinin _extend.less @import yönergesi ile bu dosyayı kayıt - ><your-theme>Magento_Theme/web/css/source/lib/_buttons_extend.lessmagento2-base/lib/web/css/source/lib/_buttons.less@import "lib/_buttons_extend.less"

Teori bir _minicart_extend.less oluşturmanızı önerir, ancak otomatik olarak çalışmaz. Belki bu dosyayı B1 veya B3'te açıklandığı gibi modülün _extend.less dosyasına almalısınız?

Ve bu bileşenleri genişletmek için doğru yol ise, _extend.less dosyasına içe aktarılması gerekiyorsa, neden daha az genişleyen bu bileşenler css'in ayrıştırılmasına otomatik olarak dahil edilmez?

(İşte başka bir soru daha geliyor: web/css/source/lib/_buttons.lessve arasındaki farklar web/css/source/_buttons.lessnelerdir? 😕)

Biraz kafam karıştı. Umarım birisi bana yardım edebilir.

Bu uzun metin için özür dilerim.


Kaynaklar:

Yanıtlar:


13

Magento 2 kurallarına göre, modül stillerini genişletmenin en iyi yolu aşağıdaki gibidir:

Stilleri genişletmek istiyorsak Magento_Checkout/web/css/source/module/_minicart.less2 dosyaya ihtiyacımız var

  • <your-theme>/Magento_Checkout/web/css/source/_extend.lessburada özel uzantılarımızı içe aktaracağız. Bu durumda@import "_minicart_extend.less"

  • <your-theme>/Magento_Checkout/web/css/source/_minicart_extend.less özel stillerimizi içerecek.

_extend.lessBelirtmek için bir dosyaya ihtiyacımızın @importsnedeni, Magento'nun _extend.lessher modül için otomatik olarak bir tane içermesidir . Tümünü *_extend.lessotomatik olarak kontrol etmek ve eklemek zaman alıcı olacaktır ve bu yüzden böyle uygulanmamıştır.

Magento Blank temasında miniarttan sorumlu tema dosyaları /vendor/magento/theme-frontend-blank/Magento_Checkout/

Ayrıca tüm özel stillerimizi doğrudan içine ekleyebiliriz _extend.less. Ancak, bunları orijinal modülde olduğu gibi daha küçük ve belirli dosyalara bölmek kodu açık ve daha iyi organize eder. Magento 2 standartlarına göre bu da önerilen yoldur.


Teşekkürler @Jalogut! Bu yüzden, "_minicart_extend.less" i "foobar.less" olarak da adlandırabilirim ve önemli olan _extend.less'te @import yaptığınız gibi bir fark yaratmaz. Bileşen adına "_extendd.less" eklemek her şeyi daha açık tutmanıza yardımcı olacak bir kural mıdır?
Loreena

Kesinlikle, fikir bu.
Jalogut

@Jalogut, "Tüm * _extend.less öğelerini otomatik olarak kontrol etmek ve eklemek zaman alıcı olacaktır" veya "sizin tahmininiz olacak" dediğinden emin misiniz? çünkü IMO, geliştiricilerin özelleştirmek istedikleri her seferinde bunu yapmak için biraz daha fazla zaman
aldığından emin değil

"@İmports'u belirtmek için bir _extend.less dosyasına ihtiyacımızın nedeni, Magento'nun modül başına otomatik olarak yalnızca bir _extend.less içermesidir." Her modülün bir _extend.less olduğunu ve sonunda büyük bir _extend.less dosyasıyla birleştirildiğini söylemek istedim
Black

"Tüm özel stillerimizi doğrudan _extend.less'e de ekleyebiliriz" Bu kötü bir fikir, çünkü "homurdanma izle" bu dosyadaki değişiklikleri dinlemiyor. Sadece içe aktarma için kullanın ve grunt refreshbu dosyada değişiklik yaptıktan sonra her zaman arayın .
Siyah
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.