我是RequireJS的新手。我基本上能理解。然而,r.js
优化过程让我感到困惑。两个问题:
-
难道把所有的源代码连接到一个文件中不会破坏RequireJS延迟加载能力的目的吗?
-
如果我使用
r.js
进行优化并在单个文件中拥有所有内容,那么我是否必须手动更新配置中的路径信息以指向该单个文件?我定义为独立模块的依赖关系现在必须在整个应用程序中更改以指向这个单一文件吗?这里只是一个假装的源代码来说明我目前是如何设置的:
requirejs.config({
paths : {
mod1 : 'app/common/module1',
mod2 : 'app/common/module2',
mod3 : 'app/common/module3',
},
});
-- MOD 1
define(["mod2", "mod3"], function(mod2, mod3) {
// do something
}
现在必须手动更新优化后看起来像这样吗?
requirejs.config({
paths : {
optimizedMod : 'build-dir/optimizedModule',
},
});
-- MOD 1
define(["optimizedMod"], function(optimizedMod) {
// do something
}
1. 不,没有。r.js
分析你的依赖树和(默认情况下)只包括模块,你需要加载应用程序启动。动态require
d的依赖将不包括在内,它们将在运行时惰性加载(除非您将findNestedDependencies设置为true
)。
再保险。2. 这正是您不应该在paths
配置元素中命名自己的模块或映射它们的原因。paths
应该用于第三方库而不是您自己的代码,集中名称->路径映射会降低灵活性。一旦你通过它们的路径(相对于baseUrl
)引用依赖项,r.js可以在构建时重写它们:
define(["app/common/module2", "app/common/module3"], function(mod2, mod3) {
// do something
}