J'ai eu cette erreur lors du chargement du fichier requirejs pour la dorsale. J'ai essayé de charger le r.js, l'optimiseur requirejs, mais je suis toujours coincé avec.
Uncaught Error: Mismatched anonymous define() module: function definition(name, global){
"use strict";
var PubSub = {
name: 'PubSubJS',
version: '1.3.1-dev'
Voici mon js:
define([
'jquery',
'underscore',
'backbone'
],function(){
subAccountRouter = Backbone.Router.extend({
routes: {
// Defining the routes
'sub-accounts': 'subAccountList',
'*actions': 'defaultAction'
},
});
Il semble que des modifications aient été apportées à la fonction d'appel requirejs define (), mais je ne peux pas le comprendre. Quelqu'un at-il des idées?
ÉDITER:::
Vous trouverez ci-dessous le fichier router.js.
define([
'jquery',
'underscore',
'backbone'
],function($, _, Backbone){
SubAccountRouter = Backbone.Router.extend({
routes: {
'sub-accounts': 'subAccountList',
'*actions': 'defaultAction'
},
initialize: function () {
this.appContainer = $("#subaccount");
//collections and models
this.subAccountCollection = null;
this.subAccountModel = null;
},
subAccountList: function(){
var self = this;
},
defaultAction: function(){
this.subAccountList();
},
});
return {
initialize: function() {
Backbone.history.start();
}
};
}); //main func
Qu'est-ce que je fais de mal ici ?? Je vérifie tous mes chemins et ils semblent être corrects, je ne comprends toujours pas pourquoi ce problème me dérange toujours .. :( J'ai essayé de changer les chemins pour les routes, et aussi de passer des arguments à la function($, _, Backbone)
(comme indiqué ci-dessous dans 1 du sol'n). Cependant, je semble toujours voir l'erreur. Est-ce que quelqu'un a d'autres idées ???
[~ # ~] mise à jour [~ # ~]
Après avoir vérifié les documents - c'est en fait la première erreur dont ils discutent :
"Si vous codez manuellement une balise de script en HTML pour charger un script avec un appel define () anonyme, cette erreur peut se produire."
Assurez-vous donc que la seule balise <script>
(Au moins pour tous les scripts qui appellent define()
) dans votre index.html est celle à requirejs.
FIN DE LA MISE À JOUR
Vous devez passer des paramètres à votre function()
comme ceci:
define([
'jquery',
'underscore',
'backbone'
],function(jquery, underscore, backbone){
subAccountRouter = Backbone.Router.extend({
routes: {
// Defining the routes
'sub-accounts': 'subAccountList',
'*actions': 'defaultAction'
},
});
J'ai écrit un post super simple sur la configuration de requirejs récemment, si vous êtes toujours bloqué.
Selon la documentation, require.js
Peut exploser si:
define()
sans ID de chaîne") dans sa propre balise de script (je suppose en fait qu'ils signifient n'importe où dans la portée globale).require.js
Pour les regrouper.J'ai eu ce problème lors de l'inclusion de bundles construits avec browserify aux côtés des modules require.js
. La solution consistait à:
A. chargez les ensembles autonomes non-require.js
Dans des balises de script avant le chargement de require.js
, Ou
B. chargez-les en utilisant require.js
(Au lieu d'une balise de script).