使用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!');
但是,如何创建同一模块的两个版本?适用于那些支持该功能的浏览器的一个版本,以及那些不支持该功能的浏览器的另一个版本。
答案 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
}
}
}
]
});