2013-06-05 55 views
0

我是RequireJS的新手,只需完成以下配置代码;在RequireJS中使用“shim”

({ 
    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" 
     } 
    ] 
}) 

我不明白什么是“填充”用于? 有人可以请简单地解释我。

回答

2

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