跨多个配置整合 RequireJS Shim 定义

Consolidate RequireJS Shim definition across multiple configurations

我在大型应用程序中使用 RequireJS。我还使用优化工具 optimize/minify 我的代码。

我有我的数据主文件,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 引用。实际上,我的 shim 对象实际上包含大约十几个 shim,因此这使得维护有点麻烦。

我有什么方法可以创建对我的 shim 对象的单个共享引用,这样我的数据主 Main.js 文件和优化 buildconfig.js 文件都可以两者都重复使用相同的引用?

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

mainConfigFile: "js/Main.js"