创建相同require.js模块的多个构建

时间:2015-03-05 07:05:26

标签: module requirejs browser-feature-detection

使用require.js和r.js,假设我有一个模块," myModule.js"。

r.js docs声明他们支持与has.js集成,以便

has: {
     feature: true
}

转换为:

if (has('feature')) {
     alert('feature detected!');
} else {
     alert('feature not supported')
}

为:

alert('feature detected!');

但是,如何创建同一模块的两个版本?适用于那些支持该功能的浏览器的一个版本,以及那些不支持该功能的浏览器的另一个版本。

1 个答案:

答案 0 :(得分:1)

假设您的应用程序入口点名为app。您可以创建一个模块app-has-foo,其中功能foo为真,app-no-foo为假。您必须使用create,以便r.js知道必须创建模块。您可以使用override覆盖属于modules选项之外的选项。

({
    baseUrl: ...,
    mainConfigFile: ...,
    dir: "out",
    modules: [
        {
            name: "app-has-foo",
            create: true,
            include: ["app"],
            override: {
                has: {
                    foo: true
                }
            }
        },
        {
            name: "app-no-foo",
            create: true,
            include: ["app"],
            override: {
                has: {
                    foo: false
                }
            }
        }
    ]
});