會議目前在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中詢問。