要充分利用 YUI 的加载器模式,您必须遵守它的一些规则。就目录模式而言,您的示例看起来几乎完全正确。
除非您在文档中明确包含您的 javascript 源文件,否则您需要通知 YUI 加载器模块存在以及它们具有哪些依赖项。目前,为模块加载依赖项的方式存在错误,因此您必须在两个地方声明依赖项,在加载器配置中,以及作为 YUI.add 语句的后缀。
您可以通过两种方式配置加载器:您可以在调用 use 之前将配置作为参数传递给 YUI(),或者您可以将配置分配给 YUI_config 全局变量:
var cfg = {
/* other configs */
modules: {
'mod3-base': { requires: [ 'mod3-class1', 'mod3-class2' ] },
'mod3-class1': { /* */ },
'mod3-class2': { /* */ }
}
}
// You could pass the config in as an argument:
YUI(cfg).use('mod3-class2', function(Y) {
// your code
});
// Or set it as a magic global:
YUI_config = cfg; // will implicitly configure all YUI().use statements
您需要配置加载程序,以便它知道在哪里可以找到您的模块文件。
通常,加载器希望每个模块都有自己的目录,其中包含一个或多个子模块文件和一个串联的“超级模块”文件。例如,查看“Base”模块,我们会看到以下模式:
- base-base.js
- 基础构建.js
- base-pluginhost.js
- base.js:base-base、base-build 和 base-pluginhost 的串联副本
这四种类型中的每一种都有三个变体,一个“原始”源文件、一个“-min”和一个“-debug”。根据您配置加载程序的方式,它可能会寻找缩小的变体。