Ошибка 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).