Incompatibles anonyme define() module
J'obtiens cette erreur quand je navigue sur mon webapp pour la première fois (habituellement dans un navigateur avec le cache désactivé).
Erreur: Dépareillées anonyme define() module: fonction (exiger) {
HTML:
<html>
.
.
.
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script> var require = { urlArgs: "v=0.4.1.32" }; </script>
<script data-main="assets/js/main" src="assets/js/libs/require.js"></script>
<script src="assets/js/ace/ace.js?v=0.4.1.32"></script>
</body>
</html>
JS:
$(function () {
define(function (require) {
//do something
});
});
Ce que quelqu'un sait exactement ce que cette erreur signifie et pourquoi sa se passe?
fichier source, un courte discussion à ce sujet dans le github questions page
Vous devez vous connecter pour publier un commentaire.
Comme AlienWebguy dit, par les docs, require.js peut souffler jusqu'à si
J'ai eu ce problème tout en incluant des faisceaux construit avec browserify côtés require.js les modules. La solution a été soit:
A. charger le non-require.js autonome faisceaux dans les balises de script avant require.js est chargé, ou
B. les charger à l'aide de require.js (au lieu d'une balise de script)
J'ai eu ce message d'erreur parce que j'ai inclus la requirejs fichier avec d'autres librairies incluses directement dans une balise script. Ces librairies (comme lodash) ont utilisé une fonction de définition qui a été en conflit avec le besoin de la définir. Le requirejs fichier était en train de charger de manière asynchrone donc je pense que le besoin de définir a définir après les autres bibliothèques de définir, d'où le conflit.
Pour se débarrasser de l'erreur, de tout inclure d'autres fichiers js en utilisant requirejs.
Par la docs:
À démarrer avec reactjs j'ai couru sur le sujet et en tant que débutant, le docs peuvent ainsi été écrit en grec.
Le problème que j'ai rencontré était que la plupart des débutants exemples d'utilisation "anonyme définit" quand vous devriez être à l'aide d'un "string id".
anonyme définit
définir avec string id
Lorsque vous utilisez définir avec un string id alors pour vous éviter ce message d'erreur lorsque vous essayez d'utiliser les modules comme:
Être conscient que certaines extensions de navigateur peut ajouter du code pour les pages.
Dans mon cas, j'ai eu un "Emmet dans tous les textareas" plugin qui foiré avec mon requireJs.
Assurez-vous qu'aucun code supplémentaire est beign ajoutée à votre document en l'inspectant dans le navigateur.
Les questions /réponses expliquer le problème mais si, y compris vos fichiers de script à l'aide de ou avant de requireJS n'est pas une option facile en raison de l'héritage de code un peu hacky solution consiste à supprimer exiger de la fenêtre étendue avant de votre balise de script, puis de le rétablir par la suite. Dans notre projet, c'est enveloppée derrière un serveur d'appel de fonction, mais effectivement le navigateur voit le suivant:
Pas la plus élégante, mais semble fonctionner et a sauvé beaucoup de refractoring.
script
éléments.(function(){ var define = undefined; // the UMD registration code won't find the global 'define' anymore! // generated content goes here })()
Ou vous pouvez utiliser cette approche.
<script data-main="js/app.js" src="js/require.js"></script>
Ce qu'il va faire, il va charger votre script après le chargement require.js.