ตกลงฉันคิดว่าฉันอาจจะแก้ไขได้และฉันเชื่อว่าเอกสารมีความคลุมเครือและจำเป็นต้องมีการปรับปรุงเพื่อชี้แจงกระบวนการ
ฉันขยับ requirejs-config.js
จากภายในweb/js
และweb
ไดเรกทอรีตามลำดับสำหรับทั้งคู่Magento_Theme
และรูทของชุดรูปแบบของฉันที่<Vendor>/<theme>
และตอนนี้การกำหนดค่า RequireJS ของฉันถูกรวมเข้ากับหลัก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 ไว้ในคำแนะนำเลย์เอาต์ของคุณตัวอย่างเช่นฉันวางระเบิดไว้ในส่วนที่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" />