Magento 2의 RequireJS 구현에서 많은 핵심 모듈은 다음과 같은 구성을 사용합니다.
map: {
'*': {
editTrigger: 'mage/edit-trigger',
addClass: 'Magento_Translation/add-class'
}
}
RequireJS에서 map
구성 지시문을 통해 개발자는 RequireJS에 알릴 수 있습니다.
모듈 X를로드하고 모듈 Y를 사용하는 경우 모듈 Y를 모듈 Z로 교체하십시오 ( 단, 모듈 X에만 해당).
또는 코드에서
map: {
'modulex':{
'moduley':'modulez'
}
}
이 map
기능은 기본적으로 구성을 통해 모듈 정의를 교체 할 수 있습니다. Magento에서 말하면, 이것은 자바 스크립트를위한 모듈 재 작성 기능입니다.
분명하지 않은 것은 마 젠토가 부동산 *
의 열쇠로 많이 사용한다는 것 map
입니다.
map: {
'*': {
editTrigger: 'mage/edit-trigger',
addClass: 'Magento_Translation/add-class'
}
}
*
기본적으로이 매핑을 * 말한다 모든 모듈 및 사용 목적의 경우와는 기본 모듈 별명 제공하는 보다 구체적인 모듈에 변경 될 수 있습니다.
그러나 Magento는이를 RequireJS의 paths
속성을 대체하는 것으로 사용 합니다 . 즉, Magento는 다음과 같은 것을 달성했을 수 있습니다.
paths: {
'editTrigger': 'mage/edit-trigger',
'addClass': 'Magento_Translation/add-class',
}
필요한 경우 특정 매핑을 선택적으로 수행합니다.
Magento가 map:*
경로 앨리어싱 방법으로 선택한 이유를 아는 사람이 있습니까? 즉 map
, path
불완전 하고 불완전한 차이에 대한 나의 이해인가, 아니면 "6 가지 중 하나, 6 가지 다른 것"중 하나입니다. 또는 이런 식으로 Magento가 얻는 추가 행동이 있습니까?
특정 문제를 해결하도록 요구하지 않고 RequireJS와 Magento의 구현에 대한 오해를 명확히하기 위해 묻습니다.
path: {foo: 'bar'}
요구bar
하지 못하게하고foo
별칭으로 만 액세스 할 수 있습니다 .