Question

J'essaie d'inclure jQuery Mobile dans un projet qui utilise RequireJS pour AMD, cependant, je ne souhaite pas charger jQuery Mobile en tant que module AMD.L'idée derrière cela est que nous utiliserons AMD pour une logique spécifique à l'application, mais que toutes les dépendances de bibliothèques externes telles que jQuery seront intégrées dans la portée globale en définissant simplement manuellement les balises de script.

Le problème que je rencontre est de définir une balise de script pour jQuery mobile avant que la balise de script RequireJS ne semble amener RequireJS à définir un module anonyme et à créer un conflit que je ne comprends pas.J'ai regardé le code jQuery et jQuery Mobile et ils sont configurés pour appeler conditionnellement le define() méthode si elle existe.Puisque j'inclus ces balises avant le chargement de RequireJS, elles ne devraient pas appeler define().J'ai vérifié cela avec des points d'arrêt et ce n'est effectivement pas le cas.

Lorsque j'inclus jQuery Mobile, j'obtiens l'erreur suivante :

Error: Mismatched anonymous define() module: [object Object]

Je ne comprends pas comment cela se produit si jQuery Mobile n'appelle pas define().Qu'est-ce que je fais de mal ici ?Est-ce quelque chose avec le nouveau support AMD conditionnel de jQuery Mobile ?

Était-ce utile?

La solution

Pour confirmer, vous devez utiliser la version construite de jQuery mobile, et vous devez l'inclure avant la balise require.js comme ceci - notez que jquery est inclus en tant que balise de script puisque jQuery mobile en dépend :

<script src="scripts/jquery.js"></script>
<script src="scripts/jquery.mobile.js"></script>
<script src="scripts/require.js" data-main="scripts/app"></script>

Je m'attends à ce que cela fonctionne.L'erreur que vous voyez peut être générée si vous disposez de scripts comme celui-ci :

<script src="scripts/require.js" data-main="scripts/app"></script>
<script src="scripts/jquery.js"></script>
<script src="scripts/jquery.mobile.js"></script>

Je considère cela davantage comme un problème avec RequireJS, pas avec jQuery mobile, quelque chose que je souhaite corriger pour RequireJS 1.1.Mais le premier ensemble de balises de script devrait fonctionner.

Si ce n'est pas le cas, il serait intéressant d'en savoir plus sur la façon dont le module JS de votre application utilise jQuery et jQuery mobile.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top