javascript - 我应该如何以及在哪里存储我自己的 YUI3 JavaScript 文件?

标签 javascript yui yui3

我打算编写一些应使用 YUI3 加载的 JavaScript 模块。我应该如何组织我的文件和文件夹?有推荐的文件夹结构吗?如果我将我的文件存储在类似于“核心”或“画廊”的位置,那么应该可以轻松加载 - 或者不是?

如果我以下列方式存储我的脚本,是否必须列出“YUI().use ...”调用中的每个模块?

de-mylib-www/mymodules/mod1/mod1-base.js
de-mylib-www/mymodules/mod2/mod2-base.js
de-mylib-www/mymodules/mod3/mod3-base.js
de-mylib-www/mymodules/mod3/mod3-class1.js
de-mylib-www/mymodules/mod3/mod3-class2.js

最佳答案

要充分利用 YUI 的加载器模式,您必须遵守它的一些规则。就目录模式而言,您的示例看起来几乎完全正确。

除非您在文档中明确包含您的 javascript 源文件,否则您将需要通知 YUI 加载器模块存在以及它们具有哪些依赖项。目前,有 a bug在为模块加载依赖项的方式中,因此您必须在两个地方声明依赖项,在加载程序配置中,以及作为 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

您需要配置加载程序,以便它知道在哪里可以找到您的模块文件。

通常,加载器希望每个模块都有自己的目录,其中包含一个或多个子模块文件和一个串联的“ super 模块”文件。例如,查看“Base”模块,我们看到以下模式:

  1. base-base.js
  2. base-build.js
  3. base-pluginhost.js
  4. base.js:base-base、base-build 和 base-pluginhost 的串联副本

这四种类型中的每一种都有三个变体,一个“原始”源文件、一个“-min”和一个“-debug”。根据您配置加载程序的方式,它可能会寻找缩小的变体。

关于javascript - 我应该如何以及在哪里存储我自己的 YUI3 JavaScript 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5344934/

相关文章:

javascript - Backbone 形式。 js 文档示例 : Onchange Populator: How can i hide the second select and show it after the change event?

css - 如何使 YUI 标签右对齐?

JavaScript 框架和 CSS 框架 : JQuery, YUI,两者都不是,还是别的?

多个类名的 YUI 3 选择器

javascript - YUI3 库中的柯里化(Currying)

javascript - Webpack、postcss 和 nanocss : how to set global variable for CSS

javascript - 重构破坏初始状态

javascript - 以编程方式渲染 Redux 表单字段

javascript - 使用模块模式在 YUI3 中创建自定义模块

javascript - 如何在 Node 上使用 YUI3?