Comment un développeur tiers peut-il ajouter une bibliothèque jQuery à Magento 2?
Alors que Magento 2 inclut une version de jQuery dans leurs thèmes frontaux, l'objet jQuery n'est pas immédiatement disponible dans l'espace de noms global. Je crois que c'est parce que Magento 2 utilise RequireJS pour extraire jQuery, et RequireJS ne chargera pas un fichier de module avant qu'il ne soit nécessaire.
Cela pose un problème pour les plugins jQuery. Normalement, j'inclurais un plugin avec HTML qui ressemblait à quelque chose comme ça
<script type="text/javascript" src="http://magento-1-9-2-2.dev/js/commercebug/jquery-ui-1.8.custom/js/jquery.cookie.js"></script>
Cependant, cela n'est pas possible avec Magento 2. Étant donné que le jquery.cookie.js
fichier définit le plug-in jQuery à l'aide de l'objet global jQuery, il échouera dans Magento 2 avec une jQuery is not defined
erreur.
Comment un développeur frontal devrait-il inclure une bibliothèque de plugins jquery standard dans l'application frontale de Magento 2?
la source
Réponses:
Créer requirejs-config.js Companyname \ Modulename \ view \ frontend \ requirejs-config.js add
Votre fichier Js dans votre module Companyname \ Modulename \ view \ frontend \ web \ js \ flexslider.js
Vous ajoutez simplement jquery lib en utilisant la syntaxe suivante
deuxième exemple
la source
Je cite les documents Magento .
Pour créer une dépendance sur le plug-in tiers, spécifiez un shim dans les fichiers de configuration suivants:
Dans votre requirejs-config.js:
Ensuite, incluez votre code de plugin tiers dans votre thème ou module: "web / js / 3-rd-party-plugin.js" comme ceci:
Cette solution est avantageuse car vous incluez votre fichier de plugin sans aucune sorte de modification. Remplacez simplement le fichier js lorsque l'auteur du plugin se met à jour ou même utilisez un cdn!
la source
La meilleure chose à faire est d'utiliser un module Magento 2 ou un thème pour inclure de tels plugins / bibliothèques. C'est la voie recommandée et la meilleure pratique .
Méthode 1> THÈME : Si la bibliothèque javascript / jquery est liée au thème (afin de changer l'apparence du système).
[rép_thème] / web / js /
[theme_dir]
Méthode 2> MODULE : si la bibliothèque javascript / jquery est liée à une fonction métier particulière ou gère une fonctionnalité Magento. Il devrait aller à l'intérieur d'un module.
Placez le fichier source du composant personnalisé dans l'un des emplacements suivants
[rép_module] / view / frontend / web / js /
Placez votre fichier requirejs-config.js dans
[rép_module] / view / frontend /
la source
Alan, jQuery UI Widget Factory a un cas spécial. Pour rendre AMD compatible, veuillez vérifier le lien suivant.
http://gregfranko.com/blog/registering-the-jqueryui-widget-factory-as-an-amd-module/
la source