Pourquoi WordPress utilise-t-il jQuery v1.12.4 obsolète?

25

En vérifiant le code source, j'ai vu que WordPress utilise jQuery v1.12.4. Pourquoi WordPress utilise-t-il cette version obsolète de jQuery?

Sandun
la source
1
La réponse est très simple: WP souhaite maintenir la compatibilité descendante avec les anciens navigateurs. WP a suffisamment d'utilisateurs qui ont encore besoin du support IE8 qu'ils ne peuvent pas encore supprimer.
Simba

Réponses:

32

Il existe de nombreux thèmes et plugins utilisant jQuery tel que chargé par WP core. Chaque fois que jQuery est mis à jour, il existe un risque de rupture des thèmes et plugins plus anciens (car beaucoup d'entre eux sont toujours utilisés mais ne sont plus mis à jour). C'est pourquoi vous voyez également jquery-migrate.jsdans votre code source. C'est un script qui capture les anciennes fonctions utilisées par les plugins / thèmes et s'assure qu'elles fonctionnent toujours dans les nouvelles versions de jQuery.

Passer à la 3.xfamille jQuery entraînerait la rupture de nombreux plugins / thèmes, car il n'est pas possible d'avoir un script de migration pour tout ce qui est obsolète. C'est pourquoi de nouvelles versions de la 1.xfamille étaient encore en cours de développement alors que les familles 2.xet 3.xexistaient déjà. Il n'y aura pas de nouvelles versions 1.xet2.x après 1.12et 2.2, à l'exception des correctifs (de sécurité). Bien que jQuery 1.12ne soit pas obsolète en ce moment, il le sera dans un proche avenir.

Ainsi, WordPress est dans une impasse. S'il ne passe pas à une version jQuery supérieure, il ne peut pas suivre de nouvelles possibilités. Cependant, s'il est mis à niveau, les sites plus anciens tomberont en panne. Le résultat le plus probable est que WP attendra quelques années, donc les thèmes / plugins plus anciens seront supprimés de toute façon, puis passeront à la 3.xfamille .

Clarification

Ce qui précède peut suggérer que la migration des 1.xversions vers 3.xn'est pas réellement possible. Ce n'est pas vrai. C'est juste un peu compliqué. L'astuce consiste d'abord à mettre à niveau vers 1.12, à déboguer le résultat à l'aide de l'ancien script de migration, puis à ajouter le 3.0script de migration, qui fonctionne avec 1.12. Instructions détaillées ici .

Mise à jour de sécurité

Les développeurs remarqueront que Google Dev Tools / Lighthouse signale que les sites WordPress sont vulnérables en raison de la présence de cette ancienne version de jQuery - ou du moins semble-t-il. En effet, tout ce que fait Lighthouse, c'est de vérifier si cette bibliothèque présente les vulnérabilités mentionnées dans la base de données des vulnérabilités Snyk . Si vous vérifiez cela en détail, vous constaterez que la version 1.12.4 est propre. Compte tenu de l'utilisation répandue de la version 1.12.4, vous pouvez compter sur toute vulnérabilité sérieuse qui sera traitée rapidement.

cjbj
la source
4
Juste pour ajouter un peu d'informations supplémentaires - jQuery 1.x et 2.x étaient activement mis à jour jusqu'en mai de cette année, la différence entre eux était simplement que 1.x était compatible avec IE8 et 2.x supprimait les correctifs et des correctifs pour ces navigateurs bogués. 3.x est la nouvelle version, et va un peu plus loin en changeant diverses interfaces pour qu'elles soient compatibles avec les interfaces HTML5 / JavaScript "officielles" (c'est-à-dire, là où il faisait les choses de la même manière, les choses devenaient standard après que jQuery avait ses propres versions faisant le même genre de chose).
Rycochet
23
  • Ce n'est pas obsolète
  • Passer à 2.x ou 3.x est trop tôt, les gens utilisent toujours IE8 qui n'est pris en charge que sur 1.x
Nabil Kadimi
la source
2
@LightnessRacesinOrbit D'accord, mais d'après mon expérience, cette question est parfaite en ce qui concerne le calibre moyen d'un développeur WP.
MonkeyZeus
7
Mise à jour pour janvier 2018: L'idée qu'il est obsolète malgré le fait qu'il soit toujours inclus par défaut avec WordPress n'est plus un "non-sens". Des vulnérabilités XSS ont été identifiées avec 1.12.4 et la branche 1.x ne reçoit plus de mises à jour. La correction recommandée consiste à mettre à niveau vers jquery 3.x snyk.io/test/npm/jquery/…
squarecandy
2
De plus, lorsque vous utilisez Lighthouse, Google vous indique que la version 1.12.4 contient des vulnérabilités de sécurité connues, vous ne devriez donc pas l'utiliser.
phpheini
4
La prise en charge d'IE8, que Microsoft ne fait même pas, est à ce stade irresponsable. Il empêche les gens d'utiliser un navigateur obsolète avec des problèmes de sécurité. Si quelqu'un utilise IE8, il doit s'arrêter.
David A. French
1
@ DavidA.French J'appuie la motion. Les développeurs doivent ARRÊTER d'accueillir les utilisateurs qui refusent de mettre à jour. Il fut un temps où tout le monde aspirait à une compatibilité totale sur tous les navigateurs connus, et ces mauvaises habitudes persistent. Peut-être que lorsque les interwebs cesseront de fonctionner pour eux, ces personnes passeront à un navigateur moderne. À ce stade, si vous n'êtes pas sur la dernière version de l'un des principaux navigateurs (IE et AOL ne comptent pas du tout), Internet ne devrait pas vous plier. Honnêtement IE8? Vous êtes comme moins de 1% du Web, [parlé dans AOL] "Au revoir"
KFish