Magento 2'nin RequireJS uygulamasında, birçok çekirdek modül böyle bir yapılandırma kullanır
map: {
'*': {
editTrigger: 'mage/edit-trigger',
addClass: 'Magento_Translation/add-class'
}
}
RequireJS'de, map
yapılandırma yönergesi geliştiricilerin RequireJS'ye
X modülünü yüklediğinizde ve Y modülünü kullandığınızda, Y modülünü Z modülüyle değiştirin - ancak yalnızca X Modülü için
Veya kodda
map: {
'modulex':{
'moduley':'modulez'
}
}
Bu map
özellik temel olarak modül tanımlarını yapılandırma yoluyla değiştirmenize izin verir - Magento'da javascript için bir modül yeniden yazma özelliğidir.
Benim için açık olmayan şey ise Magento'nun mülkün *
anahtarı olarak ağır kullanımı map
.
map: {
'*': {
editTrigger: 'mage/edit-trigger',
addClass: 'Magento_Translation/add-class'
}
}
Temel *
olarak * bu eşlemeyi tüm modüller için yap diyor ve kullanım amacı , daha spesifik modüller için değiştirilebilen bir temel modül takma adı sağlamaktır .
Ancak, Magento için bir yedek olarak kullanmak için görünür RequireJS en paths
mülkiyet . Yani Magento aşağıdakilerle aynı şeyi başarabilirdi
paths: {
'editTrigger': 'mage/edit-trigger',
'addClass': 'Magento_Translation/add-class',
}
ve sonra gerektiğinde seçmeli eşleme yapar.
Magento'nun neden map:*
yol yumuşatma yöntemi olarak seçtiğini bilen var mı ? yani - benim farkım map
ve path
eksikliğim konusundaki anlayışım - ya da bu "biri altı, yarım düzine diğeri" şeylerden biri. Ya da Magento'nun bu şekilde yaparak ek davranışları var mı?
Belirli bir sorunu çözmek istemiyorum, bu konuda yoğun bir şekilde yazmaya başlamadan önce RequireJS ve Magento'nun uygulanışındaki yanlış anlamaları açıklığa kavuşturmak istemiyorum :)
path: {foo: 'bar'}
gerekli olmasını engellerbar
ve yalnızcafoo
takma adla erişime izin verir .