在RequireJS中使用“垫片”

时间:2013-06-05 09:18:18

标签: javascript jquery backbone.js requirejs

我是RequireJS的新手,只是通过以下配置代码;

({
    appDir: "../",
    baseUrl: "js",
    dir: "../../appdirectory-build",
    paths: {
      jquery: 'libs/jquery/jquery-1.8.2',
      underscore: 'libs/underscore/underscore-1.4.4',
      backbone: 'libs/backbone/backbone-0.9.10',
      templates: '../templates',
      app: 'app'
    },

    shim: {
      underscore: {
        exports: '_'
      },
      backbone: {
        deps: ["underscore", "jquery"],
        exports: "Backbone"
      }
    },
    modules: [
        {
            name: "main"
        }
    ]
})

我不明白“shim”用于什么? 有人可以用简单的语言解释我。

1 个答案:

答案 0 :(得分:2)

您可以使用shim config定义非模块化旧脚本。非模块化的意思是那些没有使用define()声明依赖关系的脚本。因此,在上面示例中的shim配置中,您提到加载下划线并将其导出为“_”,这意味着当加载下划线时,可以在应用程序中使用_来访问它。对于主干,这意味着在加载主干之前,垫片应确保在主干之前加载下划线和jquery。因为下划线和jquery是主干的依赖关系,所以垫片有助于管理非模块化脚本的依赖关系。加载骨干后,将其作为“Backbone”导出到您的应用程序中。