我的requirejs设置有什么问题?

时间:2013-11-05 20:40:58

标签: javascript requirejs

我的requirejs配置文件对我来说是正确的。但是当我进入我的函数来启动我的应用程序时,我只能访问jQuery。有人可以看看我的配置文件,并告诉我我做错了什么?为什么我看不到Backbone或Underscore,为什么我能看到jQuery?这是我的配置文件:

require.config({
  paths: {
    jquery: "libs/jquery/jquery",
    underscore: 'libs/underscore/underscore',
    backbone: "libs/backbone/backbone"
  },
  shims: {
    backbone: {
      deps: [
        'underscore',
        'jquery'
      ],
      exports: 'Backbone'
    },
    underscore: {
      exports: '_'
    }
  }
});

require(['jquery', 'underscore', 'backbone'], function($, _, Backbone) {
  'use strict';

  debugger;
});

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

我认为你有单一的垫片而不是垫片,改变它应该解决你的问题。

shim: {
   underscore: {
     exports: '_'
   },
   backbone: {
     deps: [
      'underscore',
      'jquery'
     ],
     exports: 'Backbone'
  }
}

答案 1 :(得分:0)

您使用的下划线和主干版本不符合AMD标准,因此它们不会以require.js需要的方式返回。您可以将它们从函数参数中删除,它们将在全局范围内可用。否则,您将未定义的函数作为_和Backbone的值传递给函数。

require(['jquery', 'underscore', 'backbone'], function() {
  console.log($);
  console.log(_);
  console.log(Backbone);
});