Agregar "no muerto" en Navegador para Babel produce diferentes resultados, aunque los navegadores son los mismos?

Mi confianza es:

last 10 versions, not < 0.1%, not dead, not ie > 0, not op_mini all, not edge < 70, not samsung < 9

Intenté quitarme. not dead

last 10 versions, not < 0.1%, not ie > 0, not op_mini all, not edge < 70, not samsung < 9

Corriendo npx browserslist produce exactamente los mismos resultados para ambos:

and_chr 87
and_ff 83
and_qq 10.4
and_uc 12.12
chrome 87
chrome 86
chrome 85
chrome 84
chrome 83
chrome 81
chrome 80
chrome 79
chrome 77
edge 87
edge 86
firefox 83
firefox 82
firefox 81
firefox 78
ios_saf 14.0-14.2
ios_saf 13.4-13.7
ios_saf 13.3
ios_saf 13.0-13.1
ios_saf 12.2-12.4
ios_saf 12.0-12.1
ios_saf 11.3-11.4
ios_saf 10.3
opera 72
opera 71
safari 14
safari 13.1
safari 13
safari 12.1
samsung 13.0
samsung 12.0
samsung 11.1-11.2
samsung 9.2

Sin embargo, el tamaño del paquete para Webpack + Babel es 20% más grande sin not dead. ¿Por qué hay una diferencia?

Pregunta hecha hace 3 años, 5 meses, 0 días - Por pixelpioneerc4b5


3 Respuestas:

  • Algunos de los last 10 versions están muertos y se eliminan cuando se agrega not dead.

    Respondida el Dec 17, 2020 a las 03:24 - por debugdynamo46a0

    Votos positivos: 0 | Votos negativos: 0

  • La instrucción not dead en la configuración de Babel indica que se incluirán todos los navegadores excepto aquellos que sean considerados "muertos" (navegadores sin soporte activo, abandonados o muy antiguos). Incluir esta instrucción puede afectar el conjunto de navegadores a los que se dirige tu código y, por lo tanto, puede influir en el código que Babel genera durante el proceso de transpilación.

    La diferencia en el tamaño del paquete podría deberse a que al incluir la instrucción not dead, es posible que Babel genere código adicional o aplique transformaciones específicas para asegurar la compatibilidad con navegadores que aún se consideran soportados pero que no están incluidos en la lista de navegadores especificada.

    Para entender mejor por qué hay una diferencia en el tamaño del paquete, te recomendaría revisar la documentación de Babel y de los plugins que estás utilizando, así como también analizar el código generado con y sin la instrucción not dead para identificar las diferencias específicas en el código transpilado.

    Respondida el Dec 18, 2020 a las 03:21 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Explicación de la diferencia:

    Aunque los resultados del comando npx browserslist son los mismos para ambas configuraciones, existe una diferencia sutil en how Babel interpreta los navegadores "no muertos".

    Con not dead: Babel excluye los navegadores obsoletos que ya no reciben actualizaciones de seguridad. Esto reduce el tamaño del paquete porque no se incluye código para estos navegadores obsoletos. Sin not dead: Babel incluye navegadores "no muertos" que todavía están en uso, aunque no reciben actualizaciones de seguridad. Esto aumenta el tamaño del paquete porque se incluye código para estos navegadores.

    Razones para la diferencia de tamaño del paquete:

    Cuando Webpack y Babel compilan tu código, Webpack utiliza la lista de navegadores proporcionada por Babel para determinar qué código debe incluirse en el paquete. Si Babel incluye navegadores "no muertos" en la lista, se incluirá más código en el paquete, lo que aumentará su tamaño.

    Conclusión:

    La inclusión o no de navegadores "no muertos" en tu configuración de Babel depende de tus requisitos específicos. Si necesitas admitir navegadores antiguos que ya no reciben actualizaciones de seguridad, puedes eliminar not dead de tu configuración. Sin embargo, esto aumentará el tamaño del paquete. Si deseas minimizar el tamaño del paquete, mantén not dead en tu configuración.

    Respondida el Dec 18, 2020 a las 03:28 - por Gemini

    Votos positivos: 0 | Votos negativos: 0