我使用require.js开发了一个Web应用程序
随着整个事物的增长和增长,某些amd模块的一些依赖列表也会增长
并且变得非常复杂(在我开始使用require.js之前,在index.html页面中提醒我一些大量的脚本标签)。
所以我开始把核心模块 - 我一直需要的 - 放在新的amd模块中:
define(["config", "eventObj", "registry", "log", "userObj"],
function (conf, event, reg, log, user) {
var core = {
conf: conf,
event: event,
reg: reg,
log: log,
user: user
};
return core;
});
但是,由于这种变化,奇怪的事情发生了,例如,有一次这个“核心”存在,但后来,在另一个模块中,它也被称为依赖,它是未定义的。
有没有更好的方法来缩短依赖列表,将各种模块分组而不必将这些东西放在一个文件中?
答案 0 :(得分:1)
我们在BoilerplateJS中使用了类似的方法,如果你担心可读性,这看起来会更清晰:
define(function (require) {
return {
conf : require("config"),
event : require("eventObj"),
reg : require("registry"),
log: require("log"),
user : require ("userObj")
};
});
从https://github.com/ectechno/boilerplatejs/blob/master/src/core/_boiler_.js
采用的代码但我不明白为什么你的设置不能正常工作。你确定你指的是正确的路径吗?
答案 1 :(得分:0)
为这样的依赖关系声明路径时
define(["config", "eventObj", "registry", "log", "userObj"]
它在调用此模块的目录中搜索依赖项。因此,为了避免这种情况,有一种在Require.js
中定义路径的简洁方法require.config({
baseUrl: "/another/path",
paths: {
"some": "some/v1.0"
}
});
现在你可以在任何地方使用“some”作为依赖。这对于为用户模块添加依赖项是可以的。但是,当定义一个核心模块时,Janith上面提到的更干净。我认为它已经缩短了依赖列表。