跨多个配置合并RequireJS Shim定义

时间:2015-04-09 12:26:06

标签: javascript requirejs

我在大型应用程序中使用RequireJS。我还利用优化工具来优化/缩小我的代码。

我有我的数据主文件Main.js.在这个文件中,我定义了一组填充程序:

require.config({
    baseUrl: "js",
    shim: {
        "libs/shimmedLibrary": {
            deps: ["libs/blah"],
            exports: "shimmedLibrary"
        }
    }
});

此外,我还有buildconfig.js文件,它定义了优化参数:

({
    baseUrl: "../js",
    shim: {
        "libs/shimmedLibrary": {
            deps: ["libs/blah"],
            exports: "shimmedLibrary"
        }
    },
    include: ["requireLib"],
    name: "js/Main",
    out: "../bin/js/Main-built.js",
    optimize: "none"
})

查看这两个配置,可以看出shim对象在两个文件中都是相同的。这有点令人头疼,因为如果我必须添加shim对象,我必须确保在两个配置文件中添加填充参考。实际上,我的垫片对象实际上包含大约十几个垫片,因此这使维护变得有点痛苦。

我有没有办法为我的shim对象创建一个单独的共享引用,这样我的数据主Main.js文件和我的优化buildconfig.js文件都可以重用它参考

1 个答案:

答案 0 :(得分:1)

使用构建配置中的mainConfigFile选项,使其指向包含运行时配置的文件:

mainConfigFile: "js/Main.js"