1

我的 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;
});

谢谢您的帮助。

4

2 回答 2

3

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

shim: {
   underscore: {
     exports: '_'
   },
   backbone: {
     deps: [
      'underscore',
      'jquery'
     ],
     exports: 'Backbone'
  }
}
于 2013-11-05T20:46:48.490 回答
0

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

require(['jquery', 'underscore', 'backbone'], function() {
  console.log($);
  console.log(_);
  console.log(Backbone);
});
于 2013-11-05T20:49:42.603 回答