會議目前在matrix.org平台上舉行。
會議分鐘可以在會議上找到。jquery.org。
最新版本的jQuery可在https://jquery.com/download/上找到。
版本 | 分支 | 地位 |
---|---|---|
4.x | 主要的 | beta |
3.x | 3.x穩定 | 積極的 |
2.x | 2.x穩定 | 不活動 |
1.x | 1.x穩定 | 不活動 |
一旦發布4.0.0最終,3.x分支將繼續在有限的時間內接收更新。不再支持2.x和1.x分支。
Herodevs可以提供對非活動版本的商業支持。
了解有關我們版本支持的更多信息。
本著開源軟件開發的精神,jQuery總是鼓勵社區法規貢獻。為了幫助您入門,在進入編寫代碼之前,請務必詳細閱讀這些重要的貢獻指南:
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,您需要擁有最新的node.js/npm和git 1.7或更高版本。較早的版本可能會起作用,但不受支持。
對於Windows,您必須下載並安裝git and node.js。
MacOS用戶應安裝自製。安裝了自製釀造後,運行brew install git
以安裝Git,然後brew install node
安裝Node.js。
Linux/BSD用戶應使用其適當的軟件包經理安裝git和node.js,或者如果您這樣擺動,則從源構建。輕鬆。
首先,克隆jQuery Git Repo。
然後,輸入jQuery目錄,安裝依賴項並運行構建腳本:
cd jquery
npm install
npm run build
jQuery的構建版本將放置在dist/
DIRECTORY,以及縮小的副本和關聯的地圖文件。
要構建JQuery的所有變體,請運行以下命令:
npm run build:all
這將創建JQUERY在版本中包含的所有變體,包括jquery.js
, jquery.slim.js
, jquery.module.js
和jquery.slim.module.js
沿其相關的縮小文件和源說。
jquery.module.js
and jquery.slim.module.js
是eCMAScript模塊,將導出jQuery
和$
作為命名出口的eCmascript模塊放置在dist-module/
Directory,而不是dist/
Directory中。
構建腳本可用於創建jQuery的自定義版本,該版本僅包括您需要的模塊。
除core
外,任何模塊都可以排除在外。當排除selector
時,未將其刪除,而是用本機querySelectorAll
周圍的小包裝替換(有關更多信息,請參見下文)。
要查看構建腳本可用選項的完整列表,請運行以下內容:
npm run build -- --help
要排除模塊,請將其相對於src
文件夾(沒有.js
擴展名)的路徑傳遞到--exclude
選項。當使用--include
選項時,默認包含將被刪除,並且僅使用這些模塊創建構建。
一些可以排除或包括的示例模塊是:
AJAX :所有AJAX功能: $.ajax()
, $.get()
, $.post()
, $.ajaxSetup()
,. .load()
,transports和ajax event shorthands,例如.ajaxStart()
。
AJAX/XHR :僅XMLHTTPREQUEST AJAX運輸。
ajax/腳本: <script>
Ajax僅運輸;用於檢索腳本。
AJAX/JSONP :僅JSONP AJAX運輸;取決於Ajax/腳本傳輸。
CSS : .css()
方法。還取決於CSS(包括效果,維度和偏移)。
CSS/showHide :non-Animated .show()
,. .hide()
和.toggle()
;如果您使用類或explicit .css()
調用來設置display
屬性,則可以排除。還刪除了效果模塊。
棄用:記錄為棄用但尚未刪除的方法。
尺寸: .width()
和.height()
方法,包括inner-
和outer-
變化。
效果: .animate()
方法及其速記,例如.slideUp()
或.hide("slow")
。
事件: .on()
和.off()
方法和所有事件功能。
事件/觸發器: .trigger()
和.triggerHandler()
方法。
偏移: .offset()
,. .position()
,. .offsetParent()
,. .scrollLeft()
和.scrollTop()
方法。
wrap : .wrap()
,. .wrapAll()
,. .wrapInner()
和.unwrap()
方法。
核心/準備就緒:如果將腳本放置在身體末端,則排除現成的模塊。與jQuery()
綁定的任何現成回調都將立即被調用。但是, jQuery(document).ready()
將不是一個函數,並且不會觸發類似的.on("ready", ...)
。
延期:排除jQuery.deferred。這也排除了所有依賴於延期的模塊,包括AJAX ,效果和隊列,但用Core/Ready-No-No deferred代替Core/Ready 。
出口/全局:排除窗口的全局jQuery變量($和jQuery)的附件。
出口/AMD :排除AMD定義。
選擇器:完整的jQuery選擇器引擎。當排除此模塊時,它將用基於瀏覽器的querySelectorAll
方法替換為基本的選擇器引擎,該方法不支持JQuery Selector擴展或增強的語義。有關詳細信息,請參見Selector-native.js文件。
注意:不包括完整的selector
模塊還將排除所有jQuery Selector擴展名(例如effects/animatedSelector
和css/hiddenVisibleSelectors
)。
您可以為jQuery的AMD定義設置模塊名稱。默認情況下,它設置為“ jQuery”,它可以在插件和第三方庫中效果很好,但是您可能想更改此插件。將其傳遞到--amd
參數:
npm run build -- --amd= " custom-name "
或者,要匿名定義,請將名稱留為空白。
npm run build -- --amd
構建jQuery文件的默認名稱是jquery.js
;它位於dist/
目錄下。可以使用--filename
和使用--dir
目錄更改文件名。 --dir
相對於項目根。
npm run build -- --slim --filename= " jquery.slim.js " --dir= " /tmp "
這將創建一個苗條的jQuery版本,並將其放在tmp/jquery.slim.js
下。
默認情況下,jQuery生成常規腳本JavaScript文件。您還可以使用--esm
參數生成eCmascript模塊將jQuery
導出為默認導出:
npm run build -- --filename=jquery.module.js --esm
默認情況下,jQuery取決於全局window
。對於沒有一個環境,您可以生成一個工廠構建,該工廠構建可以將功能接受window
作為一個可以在外部提供的參數(請參閱已發布的軟件包的README
以供使用說明)。您可以使用--factory
參數生成這樣的工廠:
npm run build -- --filename=jquery.factory.js --factory
可以將此選項與其他其他人(例如--esm
或--slim
混合在一起:
npm run build -- --filename=jquery.factory.slim.module.js --factory --esm --slim --dir= " /dist-module "
使用npm run build
創建自定義構建,列出要排除的模塊。不包括頂級模塊還不包括其相應的模塊目錄。
排除所有AJAX功能:
npm run build -- --exclude=ajax
不包括CSS取決於CSS:效果,偏移,尺寸。
npm run build -- --exclude=css
排除一堆模塊( -e
是--exclude
的別名):
npm run build -- -e ajax/jsonp -e css -e deprecated -e dimensions -e effects -e offset -e wrap
有一個特殊的別名來生成與官方jQuery Slim構建相同配置的構建:
npm run build -- --filename=jquery.slim.js --slim
或者,將Slim構建作為ESM模塊創建:
npm run build -- --filename=jquery.slim.module.js --slim --esm
非官方自定義構建未定期測試。使用它們自身的風險。
確保您有必要的依賴性:
npm install
在您工作時開始npm start
自動構建jQuery:
npm start
使用支持PHP的本地服務器運行單元測試。確保您從根目錄運行站點,而不是“測試”目錄。無需數據庫。預先配置的PHP本地服務器可用於Windows和Mac。以下是一些選擇:
由於源代碼是由GIT版本控制系統處理的,因此了解使用的某些功能很有用。
如果您想將工作目錄清除回上游狀態,則可以使用以下命令(請記住,您所工作的所有內容都在這些之後消失了):
git reset --hard upstream/main
git clean -fdx
對於功能/主題分支,您應始終使用--rebase
標誌來git pull
,或者如果您通常要處理許多臨時性“要在github pull request”分支“請運行以下以自動化以下操作:
git config branch.autosetuprebase local
(有關更多信息,請參見man git-config
)
如果您在合併時會得到合併衝突,而不是手動編輯衝突文件,則可以使用功能git mergetool
。即使默認工具xxdiff
看起來很糟糕/舊,但它也很有用。
以下是可以在那裡使用的一些命令:
Ctrl + Alt + M
盡可能多b
跳到下一個合併衝突s
更改衝突線的順序u
撤消合併left mouse button
- 標記一個塊成為獲勝者middle mouse button
- 標記一行成為獲勝者Ctrl + S
保存Ctrl + Q
退出 expect ( numAssertions ) ;
stop ( ) ;
start ( ) ;
注意:在此測試套件中,Qunit最終添加了停止/開始的參數,因此可以將啟動和停止作為回調傳遞而不必擔心其參數。
ok ( value , [ message ] ) ;
equal ( actual , expected , [ message ] ) ;
notEqual ( actual , expected , [ message ] ) ;
deepEqual ( actual , expected , [ message ] ) ;
notDeepEqual ( actual , expected , [ message ] ) ;
strictEqual ( actual , expected , [ message ] ) ;
notStrictEqual ( actual , expected , [ message ] ) ;
throws ( block , [ expected ] , [ message ] ) ;
請參閱測試/數據/testinit.js。
q ( ... ) ;
例子:
q ( "main" , "foo" , "bar" ) ;
=> [ div # main , span # foo , input # bar ]
t ( testName , selector , [ "array" , "of" , "ids" ] ) ;
例子:
t ( "Check for something" , "//[a]" , [ "foo" , "bar" ] ) ;
fireNative ( node , eventType ) ;
例子:
fireNative ( jQuery ( "#elem" ) [ 0 ] , "click" ) ;
url ( "some/url" ) ;
例子:
url ( "index.html" ) ;
=> "data/index.html?10538358428943"
url ( "mock.php?foo=bar" ) ;
=> "data/mock.php?foo=bar&10538358345554"
有些測試可能需要標準測試固定裝置以外的文檔,並且可以在單獨的iFrame中運行。實際的測試代碼和斷言保留在JQuery的主要測試文件中;僅應將最小測試固定標記和設置代碼放置在iFrame文件中。
testIframe ( testName , fileName ,
function testCallback (
assert , jQuery , window , document ,
[ additional args ] ) {
...
} ) ;
這加載了一個頁面,使用文件名構建URL "./data/" + fileName
。 iframed頁面通過在startIframeTest( [ additional args ] )
的情況下包括“/test/data/iframetest.js”腳本來確定測試中回調何時發生在測試中。通常,這將是在文檔準備就緒或window.onload
之後進行的。
testCallback
接收由testIframe
為此測試創建的QUNIT assert
對象,然後從iframe中進行全局jQuery
, window
和document
。如果iframe代碼將任何參數傳遞到startIframeTest
,則遵循document
參數。
如果您有任何疑問,請隨時在開發的JQuery Core論壇或Libera上的#JQuery中詢問。