3

(以及为什么你认为 jQuery 团队不能或不愿意编写像样的文档?;)

例如,访问http://jqueryui.com/download/all/并下载

  1. jQuery UI 1.10.3(源代码、演示、主题、测试)
  2. jQuery UI 1.10.3 主题

#1

  • 有一个MANIFEST文件。
  • 有一个README.md文件,但没有说明档案的布局。
  • 有几个带有 JSON 扩展名的文件,例如ui.accordion.jquery.json. 它们包含有关特定 UI 小部件的一些信息。我不知道这些是干什么用的,你知道吗?
  • 一个名为package.json. 它似乎只是一些 JSON 格式的库信息。你知道这是干什么用的吗?我怀疑它与其他.json文件相关联,但谁知道呢?
  • 有一个名为external包含 javascripts 的目录。你知道这是干什么用的吗?
  • jquery-1.9.1.js文件。没有缩小版。
  • 中的许可证MIT-LICENSE.txt
  • 包含贡献者姓名的AUTHORS.txt文件,在整个档案中重复多次。但是,他们中没有一个人能够彻底列出档案中的内容;)
  • 一个demos目录,其中包含网站上的所有演示。
  • 自述文件中所说的AGruntfile.js用于构建 jQuery。无论“构建”jQuery 意味着什么。
  • 一个tests目录。
  • 有一个名为的目录ui似乎包含所有 jQuery UI 效果 javascript,也在一个子目录中缩小,以及一个i18n用于那些需要国际化的小部件的子目录。
  • 有一个名为 的目录themes。其中有一个名为的子目录base,它包含基本主题样式表。此子目录还包含images基本主题的目录。它还包含几个效果的样式表,例如jquery.ui.accordion.css. 这些仅适用于基本主题还是可以应用于任何主题?如果没有,为什么只有 base 有它们?(见下文)还有一个minified子目录,其中包含所有样式表的缩小版本。

#2

  • 存档包含一个MANIFEST文件
  • 但没有自述文件。
  • 作者文件。
  • package.json包含少量项目信息的文件。
  • 它有几个主题,但没有base
  • 根目录或每个主题的目录中都没有效果/小部件文件。
  • 每个主题目录都包含一个images子目录,其中包含与该主题相关的图像文件、一个jquery-ui.css样式表、一个缩小版本和一个jquery.ui.theme.css. 每个主题目录中的jquery-ui.css每个目录都不同。你知道每个文件的用途吗?为什么不是jquery.ui.theme.css文件中的所有特定更改?

为什么我需要知道这个?

这可能会出现在评论中,所以我会在这里回答。我编写了几个库来帮助在 Ruby Rack 项目、Rack JQueryUIRack JQueryUI Themes中部署正确的版本/主题。每次 jQuery UI 发生版本更改时,我都必须处理这些未记录的档案,这些档案似乎也在版本之间的布局/内容上发生了变化。与 jQuery 团队交谈时,我没有得到很好的反馈——我发现他们在文档方面很可悲,这显然不是他们的优先事项,他们宁愿重命名函数或其他东西——所以我宁愿有一个有用的答案我在这里,这将是一个保存它的好地方(可以这么说)。

我对主题目录周围的问题最感兴趣,因为这将直接帮助我,但我已经扩展了问题的范围,因为我相信它会帮助其他人并且我很好奇。

4

2 回答 2

7

让我们首先解释一下 jQuery UI 下载是什么:它们是一个完整的开发和生产文件包。请记住,jQuery UI 每天被下载超过 11,000 次(这只是下载构建器的使用)。使用这些下载的方式在用户之间可能会有很大差异。这些下载的内容旨在为最多的用户提供服务。需要注意的是,开发包几乎是源存储库的精确副本。

源代码、演示、主题、测试

  • MANIFEST:这是一个包含 zip 中所有其他文件的列表以及校验和的文件。很少有用户会关心清单,但对于那些关心的人来说,它提供了关键信息。
  • README.md:(请注意,您列出README.txt了):这是 jquery-ui git 存储库的自述文件。如果您在 GitHub 上查看该项目,它会与您看到的完全相同。
  • *.json: 这些是jQuery 插件注册表的插件清单文件。这些文件永远不会存储在主分支(或任何其他分支)中,但始终包含在标签中。因为它们提供有用的信息,所以它们包含在下载中。您可以阅读有关清单文件结构的更多信息
  • package.json: package.json 是用于npm / node的标准文件。所有 jQuery 项目都依赖节点来进行 linting、测试、构建、发布等。这与用于 jQuery 插件注册表的其他 JSON 文件完全分开。它们具有非常相似的结构,因为插件清单文件是基于 npm 设计的。
  • external:此目录包含在演示和测试中使用的第三方脚本。
  • jquery-1.9.1.js:这是 jQuery UI 测试过的最新稳定版本的 jQuery。我们从不在 jQuery UI 存储库中包含缩小的 jQuery 版本,因为它们对于调试来说很糟糕。
  • MIT-LICENSE.txt:定义了您可以使用下载文件的条款的许可证。
  • AUTHORS.txt:jquery-ui 存储库的贡献者列表。这不包括对 jQuery UI 项目其他部分的贡献者,例如在我们的任何网站或文档上的工作。
  • demos:所选组件的演示目录(在本例中为所有组件)。演示实际上源自 jquery-ui 存储库,并在发布期间复制到 jqueryui.com。
  • Gruntfile.js:我们使用Grunt进行 linting、测试和构建。Grunt 是 node 的 JavaScript 任务运行器。构建 jQuery UI 意味着缩小和连接。
  • tests:所选组件的测试目录(在本例中为所有组件)。
  • ui:源文件的副本,@VERSION 替换为发行版的版本号。该jquery-ui.js文件是在构建期间通过将所有源文件连接在一起生成的。该minified目录是在构建过程中通过缩小单个文件生成的。当然,jquery-ui.min.js通过连接和缩小源文件来生成。
  • themes:源文件的副本,@VERSION 替换为发行版的版本号。ui这与关于连接和缩小的目录经历相同的过程。各个组件文件与主题无关。因此jquery.ui.accordion.css适用于任何主题。这些是与 JS 文件一起使用所需的 CSS 文件。您可以构建任何您想要的主题,但如果您不为组件使用功能性 CSS,则无法保证任何东西都能正常工作。完整的主题(几乎所有用户实际使用的),在一个文件中包含所有功能 CSS 和主题 CSS。

主题

主题由ThemeRoller生成。它们不存在于任何存储库中,因此不包含任何存储库的工件。这就是没有 README 的原因。

  • MANIFEST:同上,清单包含下载文件的校验和。
  • AUTHORS.txtAUTHORS.txt:来自 jquery-ui的副本。这应该与源下载完全匹配。虽然这不是为主题做出贡献的人员列表,但我们将其视为代码的一部分,并包含相同的作者列表。
  • package.jsonpackage.json:来自 jquery-ui的副本。这个文件看起来有点奇怪,因为它不是来自存储库。我们可能应该删除它。
  • themes:生成主题的目录。这些不包含源变量/令牌。基本主题不是生成的主题,因此不包括在内。您会注意到生成的主题也有不同的目录结构。每个主题包含三个文件:jquery.ui.theme.css只是主题 CSS;这可以与基本主题中提供的功能性 CSS 一起使用。jquery-ui.css是一个完整的主题;它包括主题 CSS 和功能 CSS。jquery-ui.min.cssjquery-ui.css.
于 2013-07-09T13:28:46.857 回答
1

jQuery UI 已决定(非常)简化其包,以帮助避免上述混淆。从 1.11 开始,我们分发 https://github.com/jquery/download.jqueryui.com/pull/214。如有任何新问题,请告诉我们。

于 2014-12-03T11:31:24.933 回答