Гаразд, я думаю, що я це вирішив, і я вважаю, що документація неоднозначна і потребує оновлення для уточнення процесу.
Я перемістив свої 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" />