¿Por qué WordPress usa jQuery v1.12.4 obsoleto?

25

Mientras revisaba el código fuente, vi que WordPress usa jQuery v1.12.4. ¿Por qué WordPress usa esta versión desactualizada de jQuery?

Sandun
fuente
1
La respuesta es muy simple: WP quiere mantener la compatibilidad con los navegadores más antiguos. WP tiene suficientes usuarios que todavía necesitan soporte para IE8 y aún no pueden dejarlo.
Simba

Respuestas:

32

Hay muchos temas y complementos que usan jQuery como lo carga WP core. Cada vez que se actualiza jQuery, existe el riesgo de que se rompan temas y complementos antiguos (porque muchos de ellos todavía se usan pero ya no se actualizan). Es por eso que también ves jquery-migrate.jsen tu código fuente. Es un script que detecta las funciones antiguas utilizadas por los complementos / temas y se asegura de que aún funcionen en versiones más nuevas de jQuery.

Pasar a la 3.xfamilia jQuery provocaría que se rompieran muchos complementos / temas, porque no es posible tener un script de migración para todo lo que está en desuso. Es por esto que las nuevas versiones de la 1.xfamilia todavía se están desarrollando mientras que el 2.xy 3.xfamilias ya existía. No habrá nuevas 1.xy 2.xversiones posteriores 1.12y 2.2, a excepción de parches (de seguridad). Aunque jQuery 1.12no está desactualizado en este momento, lo estará en el futuro cercano.

Entonces, WordPress está en apuros. Si no se actualiza a una versión superior de jQuery, no puede mantenerse al día con nuevas posibilidades. Sin embargo, si se actualiza, los sitios más antiguos se romperán. El resultado más probable es que WP esperará un par de años, por lo que los temas / complementos más antiguos se eliminarán gradualmente de todos modos, y luego pasarán a la 3.xfamilia .

Aclaración

Lo anterior puede sugerir que la migración de 1.xversiones a 3.xno es realmente posible. Eso no es cierto. Es solo un poco complicado. El truco consiste en actualizar primero 1.12, depurar el resultado utilizando el script de migración anterior y luego agregar el 3.0script de migración, que funciona 1.12. Instrucciones detalladas aquí .

Actualización de seguridad

Los desarrolladores notarán que Google Dev Tools / Lighthouse informa que los sitios de WordPress son vulnerables debido a la presencia de esta versión anterior de jQuery, o eso parece. En efecto, todo lo que hace Lighthouse es verificar si esta biblioteca tiene vulnerabilidades mencionadas en la Base de datos de vulnerabilidades de Snyk . Si verifica esto en detalle, encontrará que la versión 1.12.4 está limpia. Dado el amplio uso de 1.12.4, puede contar con cualquier vulnerabilidad grave que se aborde rápidamente.

cjbj
fuente
44
Solo para agregar un poco de información adicional: tanto jQuery 1.xy 2.x se actualizaron activamente hasta mayo de este año, la diferencia entre ellos fue simplemente que 1.x tenía compatibilidad para IE8 y 2.x eliminó los parches y correcciones para esos navegadores con errores. 3.x es la nueva versión, y lleva las cosas un paso más allá al cambiar varias interfaces para que sean compatibles con las interfaces "oficiales" HTML5 / JavaScript (es decir, donde hizo las cosas de la misma manera, las cosas se volvieron estándar después de que jQuery tuviera sus propias versiones haciendo el mismo tipo de cosas).
Rycochet
23
  • No está desactualizado
  • Pasar a 2.xo 3.x es demasiado pronto, la gente todavía usa IE8, que solo es compatible con 1.x
Nabil Kadimi
fuente
2
@LightnessRacesinOrbit De acuerdo, pero desde mi experiencia, esta pregunta es acertada con respecto al calibre promedio de un desarrollador de WP.
MonkeyZeus
77
Actualización para enero de 2018: la idea de que está desactualizada a pesar de ser el valor predeterminado incluido con WordPress ya no es una "tontería". Las vulnerabilidades XSS se han identificado con 1.12.4 y la rama 1.x ya no recibe actualizaciones. La solución
squarecandy
2
Además, cuando usa Lighthouse, Google le dice que la versión 1.12.4 contiene vulnerabilidades de seguridad conocidas, por lo que no debería usarla.
phpheini
44
La compatibilidad con IE8, que Microsoft ni siquiera hace, es en este punto irresponsable. Mantiene a las personas que usan un navegador desactualizado con problemas de seguridad. Si alguien está usando IE8, debe detenerse.
David A. French
1
@ DavidA.French secundo la moción. Los desarrolladores deben DEJAR de acomodar a los usuarios que se niegan a actualizar. Hubo un momento en que todos aspiraban a tener una compatibilidad total en todos los navegadores posibles conocidos, y esos malos hábitos continúan persistiendo. Tal vez cuando las interwebs dejen de funcionar para ellos, esas personas se actualicen a un navegador moderno. En este punto, si no está en la última versión de uno de los principales navegadores (IE y AOL no cuentan en absoluto), Internet no debería doblarse por usted. Sinceramente IE8? Eres como menos del 1% de la web, [hablado en AOL] "Adiós"
KFish