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, mapyapı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 pathsmü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 mapve patheksikliğ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ı engellerbarve yalnızcafootakma adla erişime izin verir .