0

我正在使用 Backbone 和 RequireJS 构建一个应用程序,以此为指导。由于 Backbone 不是 AMD,我使用的是 RequireJS shim,如我上面提到的指南中所述。

我的主要脚本如下所示:

require.config({
  baseUrl: "js/",
  paths: {
    jquery: 'lib/jquery.min',
    underscore: 'lib/underscore',
    backbone: 'lib/backbone',
    'backbone.localStorage': 'lib/backbone.localStorage-min'
  },
  shim: {
    underscore: {
      exports: "_"
    },
    backbone: {
      deps: ['underscore', 'jquery'],
      exports: 'Backbone'
    },
    'backbone.localStorage': {
      deps: ['backbone'],
      exports: 'Backbone'
    }
  }
});

该指南显示在不包含 Backbone 的其他模块中包含“backbone.localStorage”,因此我假设在 localStorage shim 中deps: ['backbone']或其中一个exports: Backbone确保包含 Backbone。

undefined method: extend但是,我在 Javascript 控制台中不断收到错误消息

我正在启动其他模块,如下所示:

define(['underscore','backbone.localStorage'], function(_, Backbone) {

如何在 RequireJS 中同时包含 Backbone 和 Backbone.localStorage?

这是我第一次使用 Backbone 或 RequireJS,所以如果我的问题很明显,我深表歉意......

4

1 回答 1

2

这是我的咖啡脚本版本:

shim:
 underscore:
  exports: "_"
 backbone:
  deps: ["underscore", "jquery"]
  exports: "Backbone"
 localStorage:
  deps: ["backbone"]

paths:
  backbone: "lib/backbone/backbone-min"
  underscore: "lib/underscore/underscore-min"
  localStorage: "lib/backbone.localStorage/backbone.localStorage"

然后在一个模块中

define [
 "underscore"
 "backbone"
 "localStorage"
], (_, Backbone) ->

本地存储基本上将自身附加到 Backbone 对象,因此 AMD 只需在其之前加载主干即可。

于 2013-03-28T21:42:38.297 回答