0

有没有办法可以为依赖于公共项目的不同项目的 require.config 提供一些公共值?通用项目基本上包含项目可能使用的所有 3rd 方库和自定义小部件。

例如。我有 3 个项目 Proj1、Proj2、Proj3。他们使用的通用模块称为“shell”。而且我有一组 require.config 路径和它们三个都使用的一些路由器配置代码。

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 中使用它,并能够添加新的配置参数。

我怎样才能做到这一点?

4

1 回答 1

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模块将相对于该基本 URL 被引用,因此您必须data-main相应地调整属性。

此功能的文档在此处

于 2013-02-07T12:06:40.803 回答