Javascript 使用核心AMD构建设置木偶Js的正确方法?

Javascript 使用核心AMD构建设置木偶Js的正确方法?,javascript,requirejs,marionette,Javascript,Requirejs,Marionette,我在一边学习木偶,我试图坚持amd的核心构建,而不是填充木偶。以下是我的要求配置: require.config({ paths : { backbone : 'lib/backbone', underscore : 'lib/underscore', jquery : 'lib/jquery', marionette : 'lib/backbone.marionette', 'backbone.wreqr' : 'lib/backbone.wreqr

我在一边学习木偶,我试图坚持amd的核心构建,而不是填充木偶。以下是我的要求配置:

require.config({
  paths : {
    backbone : 'lib/backbone',
    underscore : 'lib/underscore',
    jquery : 'lib/jquery',
    marionette : 'lib/backbone.marionette',
    'backbone.wreqr' : 'lib/backbone.wreqr',
    'backbone.babysitter' : 'lib/backbone.babysitter',
    hbs : 'lib/hbs',
    Handlebars : 'lib/Handlebars'
  },
  shim : {
    jquery : {
      exports : 'jQuery'
    },
    underscore : {
      exports : '_'
    },
    backbone : {
      deps : ['jquery', 'underscore'],
      exports : 'Backbone'
    }
  },

  hbs: {
    disableI18n: true,

    disableHelpers: true

  }
});
require.config({
  paths : {
    backbone : 'lib/backbone',
    underscore : 'lib/underscore',
    jquery : 'lib/jquery',
    marionette : 'lib/backbone.marionette',
    'backbone.wreqr' : 'lib/backbone.wreqr',
    'backbone.babysitter' : 'lib/backbone.babysitter',
    hbs : 'lib/hbs',
    Handlebars : 'lib/Handlebars'
  },
  shim : {
    jquery : {
      exports : 'jQuery'
    },
    underscore : {
      exports : '_'
    },
    backbone : {
      deps : ['jquery', 'underscore'],
      exports : 'Backbone'
    },
    'backbone.wreqr': {
      deps : ['backbone']
    },
    'backbone.babysitter': {
      deps : ['backbone']
    }
  },

  hbs: {
    disableI18n: true,

    disableHelpers: true

  }
});
当我创建一个应用程序模块时,我在木偶的应用程序模块中未定义主干,如下所示:

define(["marionette", "views/CatCompositeView"], function (Marionette, CatCompositeView) {

  var app = new Marionette.Application();

  app.addRegions({
    mainRegion: '#content'
  });

  app.addInitializer(function(options){
    var catCompositeView = new CatCompositeView({
      collection: options.cats
    });

    app.mainRegion.show(catCompositeView);

  });

  return app;
});
有什么想法吗?我能够得到它所有的工作时,加垫片木偶,所以我现在还可以,但想单独加载它

更新:以下是我在require配置中完成此操作的原因:

require.config({
  paths : {
    backbone : 'lib/backbone',
    underscore : 'lib/underscore',
    jquery : 'lib/jquery',
    marionette : 'lib/backbone.marionette',
    'backbone.wreqr' : 'lib/backbone.wreqr',
    'backbone.babysitter' : 'lib/backbone.babysitter',
    hbs : 'lib/hbs',
    Handlebars : 'lib/Handlebars'
  },
  shim : {
    jquery : {
      exports : 'jQuery'
    },
    underscore : {
      exports : '_'
    },
    backbone : {
      deps : ['jquery', 'underscore'],
      exports : 'Backbone'
    }
  },

  hbs: {
    disableI18n: true,

    disableHelpers: true

  }
});
require.config({
  paths : {
    backbone : 'lib/backbone',
    underscore : 'lib/underscore',
    jquery : 'lib/jquery',
    marionette : 'lib/backbone.marionette',
    'backbone.wreqr' : 'lib/backbone.wreqr',
    'backbone.babysitter' : 'lib/backbone.babysitter',
    hbs : 'lib/hbs',
    Handlebars : 'lib/Handlebars'
  },
  shim : {
    jquery : {
      exports : 'jQuery'
    },
    underscore : {
      exports : '_'
    },
    backbone : {
      deps : ['jquery', 'underscore'],
      exports : 'Backbone'
    },
    'backbone.wreqr': {
      deps : ['backbone']
    },
    'backbone.babysitter': {
      deps : ['backbone']
    }
  },

  hbs: {
    disableI18n: true,

    disableHelpers: true

  }
});

您需要为主干网添加垫片。Marionette也需要:

marionette : {
  deps: ["backbone", "underscore"],
  exports: "Backbone.Marionette"
}

见上面的更新。我需要添加主干作为wreqr和保姆单独加载它们的依赖项

“我用垫片的方式来做,但是,在低级别和高级使用中,它似乎表明您不必这样做。@西蒙:是的,这是做的方式,但木偶的依赖项是主干、wreqr和保姆,只要下划线是backbone@Kelly : “你不必那样做”…但它是有效的!