Apakah ada perbedaan antara memperluas tema menggunakan _module.less
dan _extend.less
? Dan apa praktik terbaik saat memperluas modul / tema?
Pikiran pertama saya adalah lebih baik digunakan _module.less
saat menata modul baru, dan _extend.less
saat memperpanjang modul. Tetapi Luma menggunakan _module.less
ketika memperluas tema kosong sehingga teori telah keluar jendela.
Satu-satunya perbedaan yang dapat saya lihat di antara mereka _module.less
adalah diimpor sebelum perpustakaan responsif dan di _theme.less
mana seperti _extend.less
yang diimpor setelah mereka.
Ini adalah pesanan tempat mereka diimpor vendor/magento/theme-frontend-blank/web/css/styles-l.less
//
// Blank theme desktop styles
// _____________________________________________
// These desktop styles are added to mobile
//
// Global lib + theme styles
// ---------------------------------------------
@import '_styles.less';
@import (reference) 'source/_extends.less';
//
// Magento Import instructions
// ---------------------------------------------
//@magento_import 'source/_module.less'; // Theme modules
//@magento_import 'source/_widgets.less'; // Theme widgets
//
// Media queries collector
// ---------------------------------------------
@import 'source/lib/_responsive.less';
@media-target: 'desktop'; // Sets target device for this file
@media-common: false; // Sets not to output common styles
//
// Global variables override
// ---------------------------------------------
@import 'source/_theme.less';
//
// Extend for minor customisation
// ---------------------------------------------
//@magento_import 'source/_extend.less';
.less
file apa pun dalam tema mereka dengan jalur yang sama dengan file dalam tema induk / modul, itu adalah override. Anda mungkin dapat memverifikasi dengan membuat _module.less kosong ke dalam tema Anda, dan melihat apakah gaya asli berlaku.php bin/magento setup:static-content:deploy
, Anda dapat melihatpub/static/frontend/<vendor>/<themeName>/<locale>/css/
danpub/static/frontend/<vendor>/<themeName>/<locale>/<Module_Name>/css/
dan akan ada tautan simbolis untuk file * .less ke tema Anda, atau tema modul / induk tempat asalnya.Penjelasan atau perbedaan sederhana antara keduanya:
_extend.less
adalah cara untuk memperluas / memodifikasi gaya tema induk misalnya Anda senang dengan Luma tema induk Anda dan hanya ingin mengubah gaya tombol dalam tema khusus Anda, yang perlu Anda lakukan adalah membuat file baru di_buttons_extend.less
bawahweb/css/source
dalam tema khusus Anda dan sesuaikan gaya di sana. Daftarkan file ini dengan menambahkannya ke_extend.less
file di dalam direktori tema Anda.Bagaimana jika Anda ingin memperluas gaya modul misalnya modul checkout, yah Anda dapat membuat
_extend.less
file di dalam folder modul tema Anda misalnyaMagento_Checkout/web/css/source/_extend.less
dan menambah / memperluas gaya modul di sana.Sekarang jika saya menambahkan
_module.less
file di dalam direktori modulMagento_Checkout/web/css/source/_module.less
saya, saya bermaksud untuk menimpa styling tema orang tua saya untuk modul ini dalam hal mana saya perlu menyalin_module.less
file ' ' dari direktori modul tema orang tua saya dan membuat modifikasi pada file itu dalam hal ini file ini akan ganti_module.less
file tema induk sama sekali.sumber
The
_extends.less
dengan S di bagian akhir di dalam Blank Theme, adalah file di mana mereka membuat semua kelas yang dapat diperpanjangLESS
nanti di dalam theme, tanpa perlu membuat komponen baru atau struktur modular untuk perubahan gaya. -> Bagi mereka yang tidak percaya kepada saya: https://github.com/magento/magento2/blob/2.3-develop/app/design/frontend/Magento/blank/web/css/source/_extends.less periksa mengajukan.Yang
_extend.less
tanpa S pada akhirnya, adalah ketika Anda 99% senang dengan apa yang dimiliki tema induk dan Anda hanya perlu mengubah beberapa hal, mengubah beberapa gaya dan hanya itu.Tentang yang terakhir, pendapat pribadi saya, jangan menggunakannya untuk pengembangan Anda sendiri. Itu menciptakan kekacauan besar nanti. Jaga agar struktur Anda tetap modular
_module.less
untuk setiap modul yang ingin Anda sesuaikan dan Anda akan mendapatkan hasil yang lebih baik & proyek yang dapat dikelola pada akhirnya.sumber