Por que o WordPress usa o jQuery v1.12.4 desatualizado?

25

Ao verificar o código-fonte, vi que o WordPress usa o jQuery v1.12.4. Por que o WordPress usa esta versão desatualizada do jQuery?

Sandun
fonte
11
A resposta é muito simples: o WP deseja manter a compatibilidade com os navegadores antigos. O WP possui usuários suficientes que ainda precisam do suporte ao IE8 que ainda não podem abandoná-lo.
Simba

Respostas:

32

Existem muitos temas e plugins usando o jQuery, conforme carregado pelo núcleo do WP. Toda vez que o jQuery é atualizado, há o risco de temas e plugins antigos serem quebrados (porque muitos deles ainda são usados, mas não são mais atualizados). É por isso que você também vê jquery-migrate.jsno seu código fonte. É um script que captura funções antigas usadas por plugins / temas e garante que elas ainda funcionem em versões mais recentes do jQuery.

Mudar para a 3.xfamília jQuery causaria a quebra de muitos plugins / temas, porque não é possível ter um script de migração para tudo que foi descontinuado. É por isso que novas versões da 1.xfamília ainda estavam sendo desenvolvidas enquanto as famílias 2.xe 3.xjá existiam. Não haverá novas versões 1.xe 2.xversões posteriores 1.12e 2.2, exceto para patches (de segurança). Embora o jQuery 1.12não esteja desatualizado no momento, estará no futuro próximo.

Então, o WordPress está em conflito. Se não atualizar para uma versão mais alta do jQuery, não poderá acompanhar as novas possibilidades. No entanto, se atualizar, os sites mais antigos serão interrompidos. O resultado mais provável é que o WP espere alguns anos, para que os temas / plug-ins mais antigos sejam eliminados de qualquer maneira e depois pule para a 3.xfamília .

Esclarecimento

O exemplo acima pode sugerir que a migração de 1.xversões para 3.xnão é realmente possível. Isso não é verdade. É um pouco complicado. O truque é atualizar primeiro 1.12, depurar o resultado usando o script de migração mais antigo e, em seguida, adicionar o 3.0script de migração, que funciona com ele 1.12. Instruções detalhadas aqui .

Atualização de segurança

Os desenvolvedores perceberão que o Google Dev Tools / Lighthouse relata os sites do WordPress como vulneráveis ​​devido à presença desta versão mais antiga do jQuery - ou pelo menos parece. De fato, tudo o que o Lighthouse faz é verificar se esta biblioteca possui vulnerabilidades mencionadas no banco de dados de vulnerabilidades do Snyk . Se você verificar isso em detalhes, verá que a versão 1.12.4 está limpa. Dado o amplo uso do 1.12.4, você pode contar com qualquer vulnerabilidade séria que seja tratada rapidamente.

cjbj
fonte
4
Apenas para adicionar um pouco de informação extra - o jQuery 1.xe 2.x estavam sendo atualizados ativamente até maio deste ano, a diferença entre eles era simplesmente que o 1.x tinha compatibilidade com o IE8 e o 2.x removeu os patches e correções para esses navegadores de buggy. 3.x é a nova versão e leva as coisas um passo adiante, alterando várias interfaces para serem compatíveis com as interfaces HTML5 / JavaScript "oficiais" (ou seja, onde as coisas eram da mesma maneira, as coisas se tornaram padrão depois que o jQuery tinha suas próprias versões fazendo o mesmo tipo de coisa).
Rycochet
23
  • Não está desatualizado
  • Mudar para 2.x ou 3.x é muito cedo, as pessoas ainda usam o IE8, que é suportado apenas no 1.x
Nabil Kadimi
fonte
2
@LightnessRacesinOrbit Acordou, mas, pela minha experiência, essa pergunta é clara no que se refere ao calibre médio de um desenvolvedor de WP.
MonkeyZeus
7
Atualização para janeiro de 2018: a ideia de que está desatualizada, apesar de ainda ser o padrão incluído no WordPress, não é mais "absurda". As vulnerabilidades XSS foram identificadas com a 1.12.4 e a ramificação 1.x não está mais recebendo atualizações. A correção recomendada é atualizar para o jquery 3.x snyk.io/test/npm/jquery/…
squarecandy
2
Além disso, ao usar o Lighthouse, o Google informa que a versão 1.12.4 contém vulnerabilidades de segurança conhecidas, portanto você não deve usá-lo.
Phpheini
4
O suporte ao IE8, que a Microsoft nem faz é, neste momento, irresponsável. Mantém as pessoas usando um navegador desatualizado com problemas de segurança. Se alguém estiver usando o IE8, precisará parar.
David A. French
11
@ DavidA.French Eu segundo a moção. Os desenvolvedores precisam PARAR de acomodar usuários que se recusam a atualizar. Houve um tempo em que todos aspiravam a ter total compatibilidade entre todos os navegadores possíveis conhecidos e esses maus hábitos continuam a persistir. Talvez quando as interwebs parem de funcionar para elas, essas pessoas atualizem para um navegador moderno. Neste ponto, se você não estiver na versão mais recente de um dos principais navegadores (o IE e a AOL não contam nada), a Internet não deve se curvar. Honestamente IE8? Você é como menos de 1% da web, [falado na AOL] "Goodbye"
KFish em