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.jsdepuis les répertoires web/jset webrespectivement pour les deux Magento_Themeet la racine de mon thème dans <Vendor>/<theme>et maintenant ma configuration RequireJS est fusionnée dans le principal requirejs-config.jsavec toutes les autres inclusions .
Il semble donc que vous devez inclure le requirejs-config.jsfichier 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.jspour votre thème, vous devez mapper votre composant sur un chemin, puis utiliser shimpour 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.xmlsitué app/design/frontend/<Vendor>/<theme>/Magento_Theme/layoutsous 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" />