我使用RequireJS进行编码。我有一个源基础,但几乎没有不同的前端。 这些前端应该使用不同的模块集,因此我必须支持少量RequireJS配置,每个配置用于不同的产品。将模块添加到一个配置,导致将其添加到一些额外的配置。
有继承/扩展RequireJS配置的方法吗?
答案 0 :(得分:5)
如果您为RequireJS提供多个配置,它将合并它们。例如,如果你第一次打这个电话:
require.config({
paths: {
foo: "path/to/foo",
bar: "path/to/bar"
}
});
然后是第二次电话:
require.config({
paths: {
foo: "some/other/path/to/foo",
baz: "path/to/baz"
}
});
这两个将合并,以便bar
仍然具有在第一个require.config
调用中定义的路径。但是,foo
将被第二个配置覆盖。并且baz
不会被解析为path/to/baz
,直到读取第二个配置为止。
但是有一些限制。例如,您可以将数组作为特定模块的paths
设置。例如,foo: ["/some/path", "another/path"]
。当您需要foo
时,RequireJS将按顺序尝试路径。但是,没有方法可以告诉RequireJS在后续调用require.config
中获取之前设置的任何数组,只是将另一个值添加到数组中。您必须在后续通话中提供require.config
整个数组。
答案 1 :(得分:0)
路易斯的答案是对的,但只是一个注释,在使用r.js
优化器时,可以从多个配置中读取。根据{{3}},您可以将一组值传递给mainConfigFile,后者优先于前者。