OK, je pense que je l'ai résolu et je pense que la documentation est ambiguë et doit être mise à jour pour clarifier le processus.
J'ai déplacé mon requirejs-config.js
depuis les répertoires web/js
et web
respectivement pour les deux Magento_Theme
et la racine de mon thème dans <Vendor>/<theme>
et maintenant ma configuration RequireJS est fusionnée dans le principal requirejs-config.js
avec toutes les autres inclusions .
Il semble donc que vous devez inclure le requirejs-config.js
fichier dans les emplacements suivants en fonction des exigences du thème / module.
Niveau du thème
app/design/frontend/<Vendor>/<theme>/requirejs-config.js
Niveau du module
app/design/frontend/<Vendor>/<theme>/<Module_Name>/requirejs-config.js
Donc, dans votre requirejs-config.js
pour votre thème, vous devez mapper votre composant sur un chemin, puis utiliser shim
pour déclarer les dépendances:
var config = {
map: {
'component': 'js/component'
},
shim: {
'component': {
deps: ['jquery']
}
}
};
Ensuite, vous devrez créer un modèle pour contenir l'initialisation des composants via une <script>
balise (à moins que vous ne l'attachiez directement à un élément dans un fichier .phtml) si c'est la route que vous souhaitez descendre, incluez le contenu suivant:
<script type="text/x-magento-init">
{
"*": {
"js/component": {} // Not entirely sure what {} is and what I'm passing here
}
}
</script>
Vous pouvez également le lier à un élément:
<script type="text/x-magento-init">
{
"#element": {
"js/component": {} // Not entirely sure what {} is and what I'm passing here
}
}
</script>
Ensuite, incluez simplement le modèle .phtml dans vos instructions de mise en page, par exemple, j'ai placé le mien dans le default.xml
situé app/design/frontend/<Vendor>/<theme>/Magento_Theme/layout
sous le nœud du corps et référencé:
<block class="Magento\Framework\View\Element\Template" name="theme.js" template="Magento_Theme::html/js.phtml" />