我是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”用于什么? 有人可以用简单的语言解释我。
答案 0 :(得分:2)
您可以使用shim config定义非模块化旧脚本。非模块化的意思是那些没有使用define()声明依赖关系的脚本。因此,在上面示例中的shim配置中,您提到加载下划线并将其导出为“_”,这意味着当加载下划线时,可以在应用程序中使用_来访问它。对于主干,这意味着在加载主干之前,垫片应确保在主干之前加载下划线和jquery。因为下划线和jquery是主干的依赖关系,所以垫片有助于管理非模块化脚本的依赖关系。加载骨干后,将其作为“Backbone”导出到您的应用程序中。