Requirejs chargement des plugins
Je suis en train de charger un plugin à l'aide de requirejs, mais à l'occasion obtenez un message d'erreur, "$.fn n'est pas défini" mais si je recharge la page, l'erreur disparaît presque comme maintenant jquery est mis en cache, le problème est supprimé. Je suis le chargement de mes bibliothèques comme ceci:
require(["jquery-1.4", "/script/jquery.autoSuggest.packed.js"], function($) {
$(function() {
//code
});
});
Vous pouvez voir si il ya quelque chose de mal avec cette mise en œuvre qui serait la cause de cette erreur? Besoin de js est ajouté à la page de la manière suivante:
<script type="text/javascript" src="http://website.co.uk/frameworks/requirejs/0.2.4/sharedmodules/require.js">
</script>
<script type="text/javascript"> requireMap = {
"jquery-1.4":"http://website.co.uk/sharedmodules/jquery-1.4"
};
require({ baseUrl: 'http://website.co.uk/', paths: requireMap });
</script>
Cela ne peut pas être changé, car il fait partie de la cadre que je suis en utilisant.
Des suggestions?
Merci!
OriginalL'auteur FlimFlam | 2011-03-17
Vous devez vous connecter pour publier un commentaire.
ordre plugin est supprimé. utilisation de la cale de chargement comme suit
référence : http://requirejs.org/docs/api.html#config-shim
OriginalL'auteur Konga Raju
Vous souhaitez utiliser les afin plugin. Par défaut, RequireJS charge des scripts aussi vite que possible, et on peut charger de l'ordre. Toutefois, la commande plugin pour maintenir l'ordre du script charge.
Si vous utilisez l'optimiseur à l'optimiseur de vos scripts, assurez-vous d'inclure à la fois jQuery et le plugin dans l'optimisation de script.
oui, s'applique toujours pour jQuery 1.7. Alors que jQuery 1.7 inscrit comme un AMD module, plugin jQuery qui probablement ne pas envelopper son code dans un define() wrapper, en demandant un "jquery" comme une dépendance. Donc, le problème est vraiment avec le plugin jQuery -- si elle se charge avant de jQuery est chargé, il y aura un problème, à moins que le plugin s'enroule dans un AMD define ().
Pour ceux qui ont trouvé cette via, l'ordre plugin n'est pas prévue par la RequireJS 2.0, donc @jrburke du lien ci-dessus ne aident pas. Vous pouvez toujours utiliser le 1.0 de l'API avec l'ordre du plugin, mais la meilleure solution est d'utiliser 2.0 avec la cale de configuration.
regardez stackoverflow.com/a/14234480/1307915
Bas-voté parce que cette réponse est out-of-date maintenant. @KongaRaju l'a souligné, l'Ordre plugin a été supprimé et l'utilisation de la CALE est la méthode préférée. La haine de vote, mais si une réponse n'est plus valide, alors il ne devrait pas être très marqué plus que les gens vont suivre de mauvaises méthodes.
OriginalL'auteur jrburke
Vous pouvez commander https://github.com/jquery-boilerplate/patterns
Il a quelque chose de bon standard plugin jQuery code qui fonctionnera avec RequireJS.
Je pense que vous pouvez mettre à niveau votre jQuery 1.7 avant de ces modèles va travailler pour vous.
Merci, lien mis à jour.
OriginalL'auteur troynt