有没有办法可以为依赖于公共项目的不同项目的require.config提供一些常用值?公共项目基本上包含项目可能使用的所有第三方库和自定义小部件。
例如。我有3个项目Proj1,Proj2,Proj3。他们使用的通用模块称为“shell”。我有一组require.config路径和所有3个路由器配置代码。
require.config({
baseUrl:'parentFolder/',
paths:{
/* Third party libs */
jquery:'shell/lib/jquery/jquery-1.7.1',
json2: 'shell/lib/json/json2',
underscore:'shell/lib/underscore/underscore',
backbone:'shell/lib/backbone/backbone',
handlebars:'shell/lib/handlebars/handlebars',
/* Routers */
externalRouter:'shell/common/util/externalRouter',
/* My custom widgets */
datePicker:'shell/common/widget/datePicker',
treeView:'shell/common/widget/TreeView',
videoPlayer:'shell/common/widget/VideoPlayer',
}
});
我想在一个位置维护上面的配置代码,并希望3个项目在自己的require.config中使用它,并能够添加新的配置参数。
我怎样才能做到这一点?
答案 0 :(得分:0)
这可以通过多种方式实现,但最简单的可能是利用RequireJS允许您在加载require
之前将配置对象定义为名为require.js
的全局变量这一事实。并在启动时自动应用这些值。
因此,将您的常用配置放在一个简单的javascript源文件中,如下所示:
//common-config.js
require = {
baseUrl:'parentFolder/',
paths:{
jquery:'shell/lib/jquery/jquery-1.7.1',
}
};
并将其包含在之前的:require.js:
<script src="common-config.js"></script>
<script src="require.js" data-main="main"></script>
然后,您可以像往常一样使用特定于应用程序的配置在主模块中再次调用require.config
。请注意,如果您定义baseUrl
选项,则相对于该基本网址会引用main
模块,因此您必须相应地调整data-main
属性。
此功能的文档为here。