좋아, 나는 그것을 해결했다고 생각하고 문서가 모호하고 프로세스를 명확히하기 위해 업데이트해야한다고 생각합니다.
내 테마의 루트와 루트에 대해 각각 및 디렉토리 내 requirejs-config.js
에서 각각을 이동 했으며 이제 RequireJS 구성이 다른 모든 포함과 함께 기본 으로 병합되었습니다 .web/js
web
Magento_Theme
<Vendor>/<theme>
requirejs-config.js
따라서 requirejs-config.js
테마 / 모듈 요구 사항에 따라 다음 위치에 파일 을 포함해야 합니다.
테마 레벨
app/design/frontend/<Vendor>/<theme>/requirejs-config.js
모듈 레벨
app/design/frontend/<Vendor>/<theme>/<Module_Name>/requirejs-config.js
따라서 requirejs-config.js
테마 에서 구성 요소를 경로에 매핑 한 다음 shim
종속성을 선언하는 데 사용해야 합니다.
var config = {
map: {
'component': 'js/component'
},
shim: {
'component': {
deps: ['jquery']
}
}
};
그런 다음 <script>
내려갈 경로 인 경우 태그 를 통해 구성 요소의 초기화를 유지하기위한 템플릿을 만들어야합니다 (.phtml 파일의 요소에 직접 첨부하지 않은 경우).
<script type="text/x-magento-init">
{
"*": {
"js/component": {} // Not entirely sure what {} is and what I'm passing here
}
}
</script>
또는 요소에 바인딩하십시오.
<script type="text/x-magento-init">
{
"#element": {
"js/component": {} // Not entirely sure what {} is and what I'm passing here
}
}
</script>
그런 다음 레이아웃 지침에 .phtml 템플릿을 포함시키기 만하면됩니다. 예를 들어, body 노드 아래에있는 default.xml
곳에 배치 app/design/frontend/<Vendor>/<theme>/Magento_Theme/layout
하고 참조했습니다.
<block class="Magento\Framework\View\Element\Template" name="theme.js" template="Magento_Theme::html/js.phtml" />