Des réunions sont actuellement organisées sur la plate-forme Matrix.org.
Les procès-verbaux de la réunion peuvent être trouvés sur meetings.jquery.org.
La dernière version de jQuery est disponible sur https://jquery.com/download/.
Version | Bifurquer | Statut |
---|---|---|
4.x | principal | Bêta |
3.x | 3.x-stable | Actif |
2.x | 2.x-stable | Inactif |
1.x | 1.x-stable | Inactif |
Une fois 4.0.0 Final est publié, la branche 3.x continuera de recevoir des mises à jour pour une durée limitée. Les branches 2.x et 1.x ne sont plus prises en charge.
Le support commercial pour les versions inactifs est disponible auprès d'Hérodevs.
En savoir plus sur notre prise en charge de notre version.
Dans l'esprit du développement de logiciels open source, JQuery encourage toujours la contribution du code communautaire. Pour vous aider à démarrer et avant de passer à l'écriture de code, assurez-vous de lire à fond ces directives de contribution importantes:
Les problèmes GitHub / PRS sont généralement référencés via gh-NUMBER
, où NUMBER
est l'ID numérique du problème / PR. Vous pouvez trouver un tel problème / PR sous https://github.com/jquery/jquery/issues/NUMBER
.
JQuery a utilisé un autre tracker de bogues - basé sur Trac - dans le passé, disponible sous bogue.jquery.com. Il est conservé en mode lecture uniquement afin que la référence aux discussions passées soit possible. Lorsque JQuery Source fait référence à l'un de ces problèmes, il utilise le modèle trac-NUMBER
modèle, où NUMBER
est l'ID numérique du problème. Vous pouvez trouver un tel problème sous https://bugs.jquery.com/ticket/NUMBER
.
Pour construire jQuery, vous devez avoir le dernier Node.js / npm et Git 1.7 ou version ultérieure. Des versions antérieures peuvent fonctionner, mais ne sont pas prises en charge.
Pour Windows, vous devez télécharger et installer Git et Node.js.
Les utilisateurs de MacOS doivent installer Homebrew. Une fois Homebrew installé, exécutez brew install git
pour installer GIT et brew install node
pour installer Node.js.
Les utilisateurs de Linux / BSD doivent utiliser leurs gestionnaires de packages appropriés pour installer GIT et Node.js, ou construire à partir de Source si vous vous balancez de cette façon. Très facile.
Tout d'abord, clone le repo jQuery Git.
Ensuite, entrez dans le répertoire jQuery, installez les dépendances et exécutez le script de construction:
cd jquery
npm install
npm run build
La version construite de JQuery sera placée dans le dist/
Directory, ainsi qu'une copie minifiée et un fichier de carte associé.
Pour construire toutes les variantes de jQuery, exécutez la commande suivante:
npm run build:all
Cela créera toutes les variantes que jQuery comprendra dans un communiqué, y compris jquery.js
, jquery.slim.js
, jquery.module.js
et jquery.slim.module.js
le long de leurs fichiers et sourcemaps minifiés associés.
jquery.module.js
et jquery.slim.module.js
sont des modules ecmascript qui exportent jQuery
et $
tels que nommés exportations sont placées dans le dist-module/
répertoire plutôt que dans le dist/
répertoire.
Le script de construction peut être utilisé pour créer une version personnalisée de jQuery qui ne comprend que les modules dont vous avez besoin.
Tout module peut être exclu à l'exception du core
. Lors de l'exclusion selector
, il n'est pas supprimé mais remplacé par un petit wrapper autour de querySelectorAll
natif (voir ci-dessous pour plus d'informations).
Pour voir la liste complète des options disponibles pour le script de construction, exécutez ce qui suit:
npm run build -- --help
Pour exclure un module, transmettez son chemin par rapport au dossier src
(sans l'extension .js
) à l'option --exclude
. Lorsque vous utilisez l'option --include
, les incluses par défaut sont supprimées et une version est créée avec uniquement ces modules.
Certains exemple de modules qui peuvent être exclus ou inclus sont:
AJAX : Toutes les fonctionnalités ajax: $.ajax()
, $.get()
, $.post()
, $.ajaxSetup()
, .load()
, les transports et les raccourcis d'événements ajax tels que .ajaxStart()
.
AJAX / XHR : Le transport XMLHTTPREQUEST AJAX uniquement.
ajax / script : le <script>
ajax transport uniquement; utilisé pour récupérer les scripts.
AJAX / JSONP : Le JSONP Ajax Transport uniquement; Cela dépend du transport ajax / script.
CSS : la méthode .css()
. Supprime également tous les modules en fonction du CSS (y compris les effets , les dimensions et le décalage ).
CSS / ShowHide : non animé .show()
, .hide()
et .toggle()
; Peut être exclu si vous utilisez des classes ou des appels .css()
explicites pour définir la propriété display
. Supprime également le module d'effets .
Déacré : méthodes documentées comme obsolètes mais pas encore supprimées.
Dimensions : les méthodes .width()
et .height()
, y compris les variations inner-
et outer-
.
Effets : la méthode .animate()
et ses raccourcis tels que .slideUp()
ou .hide("slow")
.
Événement : les méthodes .on()
et .off()
et toutes les fonctionnalités de l'événement.
Event / Trigger : les méthodes .trigger()
et .triggerHandler()
.
Offset : le .offset()
, .position()
, .offsetParent()
, .scrollLeft()
et .scrollTop()
.
Enveloppez : les .wrap()
, .wrapAll()
, .wrapInner()
et .unwrap()
Méthodes.
Core / Ready : Excluez le module Ready si vous placez vos scripts à la fin du corps. Tous les rappels prêts à l'emploi avec jQuery()
seront simplement appelés immédiatement. Cependant, jQuery(document).ready()
ne sera pas une fonction et .on("ready", ...)
ou similaire ne sera pas déclenché.
différé : Excluez jQuery.Deferred. Cela exclut également tous les modules qui reposent sur les différés, y compris l'Ajax , les effets et la file d'attente , mais remplace le noyau / prêt par le noyau / prêt
Exports / Global : Excluez l'attachement des variables jQuery globales ($ et jQuery) vers la fenêtre.
Exportations / AMD : exclure la définition AMD.
Sélecteur : le moteur de sélecteur jQuery complet. Lorsque ce module est exclu, il est remplacé par un moteur de sélecteur rudimentaire basé sur la méthode querySelectorAll
du navigateur qui ne prend pas en charge les extensions de sélecteur jQuery ou la sémantique améliorée. Voir le fichier Selector-Native.js pour plus de détails.
Remarque : l'exclusion du module selector
complet exclura également toutes les extensions de sélecteur jQuery (telles que effects/animatedSelector
et css/hiddenVisibleSelectors
).
Vous pouvez définir le nom du module pour la définition AMD de JQuery. Par défaut, il est défini sur "jQuery", qui joue bien avec les plugins et les bibliothèques tierces, mais il peut y avoir des cas où vous souhaitez changer cela. Passez-le au paramètre --amd
:
npm run build -- --amd= " custom-name "
Ou, pour définir de manière anonyme, laisser le nom vide.
npm run build -- --amd
Le nom par défaut du fichier jQuery construit est jquery.js
; Il est placé sous le dist/
Directory. Il est possible de modifier le nom de fichier en utilisant --filename
et le répertoire en utilisant --dir
. --dir
est relatif à la racine du projet.
npm run build -- --slim --filename= " jquery.slim.js " --dir= " /tmp "
Cela créerait une version mince de jQuery et la placerait sous tmp/jquery.slim.js
.
Par défaut, JQuery génère un fichier JavaScript de script régulier. Vous pouvez également générer un module ECMascript exportant jQuery
comme exportation par défaut à l'aide du paramètre --esm
:
npm run build -- --filename=jquery.module.js --esm
Par défaut, jQuery dépend d'une window
globale. Pour les environnements qui n'en ont pas, vous pouvez générer une version d'usine qui expose une fonction acceptant window
en tant que paramètre que vous pouvez fournir en externe (voir README
du package publié pour les instructions d'utilisation). Vous pouvez générer une telle usine à l'aide du paramètre --factory
:
npm run build -- --filename=jquery.factory.js --factory
Cette option peut être mélangée avec d'autres comme --esm
ou --slim
:
npm run build -- --filename=jquery.factory.slim.module.js --factory --esm --slim --dir= " /dist-module "
Créez une version personnalisée à l'aide de npm run build
, répertoriant les modules à exclure. L'exclusion d'un module de niveau supérieur exclut également son répertoire de modules correspondant.
Exclure toutes les fonctionnalités AJAX :
npm run build -- --exclude=ajax
L'exclusion de CSS supprime les modules en fonction des CSS: effets , décalage , dimensions .
npm run build -- --exclude=css
Exclure un tas de modules ( -e
est un alias pour --exclude
):
npm run build -- -e ajax/jsonp -e css -e deprecated -e dimensions -e effects -e offset -e wrap
Il y a un alias spécial pour générer une construction avec la même configuration que la construction officielle de jQuery Slim:
npm run build -- --filename=jquery.slim.js --slim
Ou, pour créer la construction mince en tant que module ESM:
npm run build -- --filename=jquery.slim.module.js --slim --esm
Les versions personnalisées non officielles ne sont pas régulièrement testées. Utilisez-les à vos propres risques.
Assurez-vous d'avoir les dépendances nécessaires:
npm install
Démarrez npm start
à construire automatiquement jQuery pendant que vous travaillez:
npm start
Exécutez les tests unitaires avec un serveur local qui prend en charge PHP. Assurez-vous d'exécuter le site à partir du répertoire racine, pas du répertoire "Test". Aucune base de données n'est requise. Les serveurs locaux PHP préconfigurés sont disponibles pour Windows et Mac. Voici quelques options:
Comme le code source est géré par le système de contrôle de version GIT, il est utile de connaître certaines fonctionnalités utilisées.
Si vous souhaitez purger votre répertoire de travail à l'état de l'amont, les commandes suivantes peuvent être utilisées (rappelez-vous que tout ce sur quoi vous avez travaillé est parti après ces derniers):
git reset --hard upstream/main
git clean -fdx
Pour les branches de fonctionnalité / sujet, vous devez toujours utiliser l'indicateur --rebase
pour git pull
, ou si vous gérez généralement de nombreux branches temporaires "pour être dans une demande de github", exécutez ce qui suit pour automatiser:
git config branch.autosetuprebase local
(Voir man git-config
pour plus d'informations)
Si vous obtenez des conflits de fusion lors de la fusion, au lieu de modifier les fichiers en conflit manuellement, vous pouvez utiliser la fonctionnalité git mergetool
. Même si l'outil par défaut xxdiff
semble horrible / ancien, il est plutôt utile.
Voici quelques commandes qui peuvent y être utilisées:
Ctrl + Alt + M
- Automerge autant que possibleb
- Sautez le prochain conflit de fusions
- Modifier l'ordre des lignes conflictuellesu
- annuler une fusionleft mouse button
- Marquez un bloc pour être le gagnantmiddle mouse button
- Marquez une ligne pour être le gagnantCtrl + S
- EnregistrerCtrl + Q
- Quitter expect ( numAssertions ) ;
stop ( ) ;
start ( ) ;
Remarque : L'ajout éventuel de Qunit d'un argument pour arrêter / démarrer est ignoré dans cette suite de test afin que le démarrage et l'arrêt puissent être passés en tant que rappels sans se soucier de leurs paramètres.
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 ] ) ;
Voir test / data / testinit.js.
q ( ... ) ;
Exemple:
q ( "main" , "foo" , "bar" ) ;
=> [ div # main , span # foo , input # bar ]
t ( testName , selector , [ "array" , "of" , "ids" ] ) ;
Exemple:
t ( "Check for something" , "//[a]" , [ "foo" , "bar" ] ) ;
fireNative ( node , eventType ) ;
Exemple:
fireNative ( jQuery ( "#elem" ) [ 0 ] , "click" ) ;
url ( "some/url" ) ;
Exemple:
url ( "index.html" ) ;
=> "data/index.html?10538358428943"
url ( "mock.php?foo=bar" ) ;
=> "data/mock.php?foo=bar&10538358345554"
Certains tests peuvent nécessiter un document autre que le luminaire de test standard, et ceux-ci peuvent être exécutés dans un iframe séparé. Le code de test réel et les affirmations restent dans les principaux fichiers de test de jQuery; Seul le balisage et le code de configuration du fixation de test minimal doivent être placés dans le fichier iframe.
testIframe ( testName , fileName ,
function testCallback (
assert , jQuery , window , document ,
[ additional args ] ) {
...
} ) ;
Cela charge une page, construisant une URL avec nom de fichier "./data/" + fileName
. La page iframed détermine quand le rappel se produit dans le test en incluant le script "/test/data/iframetest.js" et l'appel startIframeTest( [ additional args ] )
le cas échéant. Ce sera souvent après le document prêt ou window.onload
.
Le testCallback
reçoit l'objet QUnit assert
créé par testIframe
pour ce test, suivi de la jQuery
, window
et document
global à partir de l'IFRAME. Si le code IFRAME transmet des arguments à startIframeTest
, ils suivent l'argument document
.
Si vous avez des questions, n'hésitez pas à vous poser sur le développement du forum JQuery Core ou dans #jQuery sur Libera.