OK, saya pikir saya mungkin telah menyelesaikannya dan saya percaya bahwa dokumentasinya ambigu dan perlu diperbarui untuk memperjelas prosesnya.
Saya pindah requirejs-config.js
dari dalam web/js
dan web
direktori masing-masing untuk kedua Magento_Theme
dan akar tema saya di <Vendor>/<theme>
dan sekarang konfigurasi RequireJS saya digabung menjadi main requirejs-config.js
dengan semua termasuk lainnya.
Jadi, tampaknya Anda harus memasukkan requirejs-config.js
file di lokasi berikut berdasarkan persyaratan tema / modul.
Tingkat Tema
app/design/frontend/<Vendor>/<theme>/requirejs-config.js
Tingkat Modul
app/design/frontend/<Vendor>/<theme>/<Module_Name>/requirejs-config.js
Jadi, dalam requirejs-config.js
untuk tema Anda, Anda harus memetakan komponen Anda ke jalur dan kemudian gunakan shim
untuk mendeklarasikan dependensi:
var config = {
map: {
'component': 'js/component'
},
shim: {
'component': {
deps: ['jquery']
}
}
};
Maka Anda harus membuat templat untuk menahan inisialisasi komponen melalui <script>
tag (kecuali jika Anda melampirkannya langsung ke elemen dalam file .phtml) jika ini adalah rute yang ingin Anda turunkan, sertakan konten berikut:
<script type="text/x-magento-init">
{
"*": {
"js/component": {} // Not entirely sure what {} is and what I'm passing here
}
}
</script>
Sebagai alternatif, ikat ke elemen:
<script type="text/x-magento-init">
{
"#element": {
"js/component": {} // Not entirely sure what {} is and what I'm passing here
}
}
</script>
Kemudian cukup sertakan templat .phtml dalam instruksi tata letak Anda, misalnya, saya menempatkan milik saya di dalam yang default.xml
terletak di app/design/frontend/<Vendor>/<theme>/Magento_Theme/layout
bawah simpul tubuh dan direferensikan:
<block class="Magento\Framework\View\Element\Template" name="theme.js" template="Magento_Theme::html/js.phtml" />