jQuery JavaScript库
Posted
tags:
中文标题:jQuery JavaScript库 原文标题: 项目评级:Star:57400 Fork:20800 下载地址:https://github.com/jquery/jquery 详情介绍jQuery-新浪潮JavaScript
贡献指南
本着开源软件开发的精神,jQuery始终鼓励社区代码的贡献。为了帮助您开始编写代码,在开始编写代码之前,一定要仔细阅读这些重要的贡献指南:
参考问题/PR
GitHub问题/PR通常通过gh-NUMBER
引用,其中NUMBER
是问题/PR的数字ID。您可以在https://github.com/jquery/jquery/issues/NUMBER
下找到这样的问题/PR。
jQuery过去曾使用过另一种基于Trac的错误跟踪器,可在bugs.jQuery.com下使用。它保持在只读模式,以便可以参考过去的讨论。当jQuery源引用其中一个问题时,它使用模式trac-NUMBER
,其中NUMBER
是问题的数字ID。您可以在https://bugs.jquery.com/ticket/NUMBER
中找到这样的问题。
使用jQuery的环境
构建自己的jQuery需要什么
要构建jQuery,您需要拥有最新的Node.js/npm和git 1.7或更高版本。早期版本可能有效,但不受支持。
对于Windows,您必须下载并安装git和Node.js。
macOS用户应该安装Homebrew。Homebrew安装完成后,运行brew install git
安装git,
brew install node
安装Node.js。
Linux/BSD用户应该使用适当的包管理器来安装git和Node.js,或者从源代码构建
如果你那样挥杆。小菜一碟
如何构建自己的jQuery
首先,克隆jQuery git repo。
然后,输入jquery目录并运行构建脚本:
jQuery的构建版本将与缩小的副本和相关的地图文件一起放在dist/
子目录中。
如果您想创建自定义构建或帮助jQuery开发,最好将grunt命令行接口作为全局包安装:
npm install -g grunt-cli
通过测试确保您已安装grunt
:
grunt -V
现在,通过运行grunt
命令,在jquery目录中,您可以构建完整版本的jquery,就像运行npm run build
命令一样:
grunt
jQuery Core还可以执行许多其他任务:
grunt -help
模块
可以创建排除jQuery功能子集的特殊构建。
当构建器确定jQuery的这些部分没有被使用时,这允许较小的自定义构建。
例如,一个只对$.ajax()
使用JSONP并且不需要计算元素的偏移量或位置的应用程序可以排除偏移量和ajax/xhr模块。
除core
和selector
外,可以排除任何模块。要排除模块,请传递其相对于src
文件夹的路径(没有.js
扩展名)。
可以排除的一些示例模块包括:
作为特殊情况,您也可以使用特殊标志grunt custom:-selector
来替换完整的jQueryselector
模块。
注意:排除完整的selector
模块也将排除所有jQuery选择器扩展(如effects/animatedSelector
和css/hiddenVisibleSelectors
)。
构建过程为它排除或包含的每个依赖模块显示一条消息。
AMD名称
作为一个选项,您可以为jQuery的AMD定义设置模块名称。默认情况下,它被设置为“jquery”,这可以很好地与插件和第三方库配合使用,但在某些情况下,您可能希望更改这一点。只需设置"amd"
选项:
或者,要匿名定义,请将名称设置为空字符串。
自定义生成示例
若要创建自定义生成,请首先签出版本:
其中VERSION是要自定义的版本。然后,确保安装了所有节点依赖项:
使用grunt custom
选项创建自定义构建,列出要排除的模块。
排除所有ajax功能:
排除css会删除依赖于css的模块:效果、偏移量、维度。
排除一组模块:
还有一个特殊的别名,用于生成与官方jQuery Slim构建相同配置的构建:
有关自定义构建的问题或请求,请在论坛的开发jQuery核心部分启动一个线程。由于这些构建的组合学和自定义特性,它们不会在jQuery的单元测试过程中定期进行测试。
运行单元测试
确保您具有必要的依赖关系:
启动grunt watch
或npm start
,在工作时自动构建jQuery:
使用支持PHP的本地服务器运行单元测试。请确保从根目录而不是“测试”目录运行站点。不需要数据库。预配置的php本地服务器可用于Windows和Mac。以下是一些选项:
正在折叠到不同的目录
要将构建的jQuery文件从/dist
复制到另一个目录:
在本例中,输出文件为:
要添加永久复制目的地,请在dist/
中创建一个名为“.destination.json”的文件。在文件内部,粘贴并自定义以下内容:
此外,这两种方法可以结合使用。
基本Git
由于源代码由Git版本控制系统处理,了解所使用的一些功能是很有用的。
打扫
如果您想将工作目录清除回上游状态,可以使用以下命令(请记住,您所处理的所有内容都在这些命令之后消失):
回扣
对于功能/主题分支,您应该始终使用--rebase
标志来git pull
,或者如果您通常正在处理许多临时的“待在github拉取请求中”分支,请运行以下操作以实现自动化:
(详见man git-config
)
处理合并冲突
如果您在合并时遇到合并冲突,您可以使用该功能,而不是手动编辑冲突的文件
git mergetool
. 尽管默认工具xxdiff
看起来很糟糕/很旧,但它相当有用。
以下是可以在其中使用的一些命令:
QUnit参考
试验方法
注意:QUnit最终添加的停止/启动参数在这个测试套件中被忽略,这样启动和停止就可以作为回调传递,而不用担心它们的参数。
测试断言
测试套件便利方法参考(请参阅Test/data/testinit.js)
返回具有给定ID的元素数组
例子:
断言所选内容与给定的ID匹配
例子:
在不经过jQuery的情况下激发本机DOM事件
例子:
向url添加随机数以停止缓存
例子:
在iframe中运行测试
某些测试可能需要标准测试夹具以外的文件,以及
这些可以在单独的iframe中运行。实际的测试代码和断言
保留在jQuery的主要测试文件中;只有最小的测试夹具标记
并且设置代码应该放在iframe文件中。
这会加载一个页面,构建一个fileName"./data/" + fileName
的url。
iframed页面通过以下方式确定测试中何时发生回调
包括“/test/data/iframeTest.js”脚本和调用
适当时startIframeTest( [ additional args ] )
。通常情况下
将在文件准备就绪或window.onload
火灾之后。
testCallback
接收testIframe
创建的QUnitassert
对象
对于该测试,从全局jQuery
、window
和document
iframe。如果iframe代码将任何参数传递到startIframeTest
,
它们遵循document
的论点。
问题?
如果您有任何问题,请随时在
开发jQuery核心论坛或在libera上的#jQuery中。
JavaScript-Runoob-JS 库 :测试 jQuery