Ошибка Uncaught: несоответствующий анонимный модуль define (): определение функции (имя, глобальный) [дубликат]
этот вопрос уже есть ответ здесь:
Я получил эту ошибку при загрузке файла requirejs для магистрали. Я попытался загрузить r.js, оптимизатор requirejs, но я все еще застрял с ним.
Uncaught Error: Mismatched anonymous define() module: function definition(name, global){
"use strict";
var PubSub = {
name: 'PubSubJS',
version: '1.3.1-dev'
ниже мой js:
define([
'jquery',
'underscore',
'backbone'
],function(){
subAccountRouter = Backbone.Router.extend({
routes: {
// Defining the routes
'sub-accounts': 'subAccountList',
'*actions': 'defaultAction'
},
});
кажется, были внесены некоторые изменения в функцию вызова requirejs define (), как-то не могу понять это. У кого-нибудь есть идеи??
EDIT:::
ниже находится маршрутизатор.файл 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
что я делаю неправильно здесь??
Я проверяю все свои пути, и они кажутся правильными, я все еще не понимаю, почему эта проблема все еще беспокоит меня..:(
Я попытался изменить пути для маршрутов, а также передать аргументы в function($, _, Backbone)
(как показано ниже в 1 sol'N). Однако я все еще вижу ошибки. У кого-нибудь есть другие идеи???
2 ответов
обновление
после проверки документов - это на самом деле первая ошибка, которую они обсуждают:
" если вы вручную закодируете тег скрипта в HTML для загрузки скрипта с анонимным вызовом define (), эта ошибка может возникнуть."
поэтому убедитесь, что только <script>
tag (по крайней мере, для любых скриптов, которые вызывают define()
) в индексе.html является одним из requirejs.
ОБНОВЛЕНИЯ
вы нужно передать параметры в ваш function()
вот так:
define([
'jquery',
'underscore',
'backbone'
],function(jquery, underscore, backbone){
subAccountRouter = Backbone.Router.extend({
routes: {
// Defining the routes
'sub-accounts': 'subAccountList',
'*actions': 'defaultAction'
},
});
Я написал супер-простой пост по настройке requirejs недавно, если вы все еще застряли.
на документы","require.js
может взорваться, если:
- у вас есть анонимное определение ("модули, которые вызывают
define()
нет string ID") в своем собственном теге скрипта (я предполагаю, что на самом деле они означают где угодно в глобальном масштабе). - у вас есть модули, которые имеют конфликтующие имена.
- вы используете Плагины загрузчика или анонимные модули, но не используете
require.js
оптимизатор для связывания их.
у меня была эта проблема, включая пакеты, построенные с browserify вместе с require.js
модули. Решение было следующее:
загрузить А. non-require.js
автономные пакеты в тегах скриптов до require.js
загружается, или
B. загрузите их с помощью require.js
(вместо тега script).