Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

255
Views
Babel/preset-env: confusión sobre la configuración del entorno de destino para el envío de polyfills

Estoy aprendiendo a usar @babel/preset-env para enviar los polyfills del navegador necesarios para nuestros clientes. Tengo entendido que babel enviará polyfills si el cliente que visita el sitio web es uno de los entornos de destino. Y parece haber dos formas de especificar los entornos de destino: 1. lista de navegadores 2. la opción de targets como en { "presets": [["@babel/preset-env", { "targets": "defaults" }]] }

Pero aquí hay algunas cosas que no entiendo muy bien:

  1. Parece que todos los polyfills provienen de core-js . Y agregar polyfill parece un proceso de tiempo de compilación. lo que no entiendo bien es cómo babel realmente selecciona qué polyfills necesita el cliente: ¿babel importa todos los polyfills a la vez y solo los aplica en tiempo de ejecución si es necesario o solo importa los polyfills necesarios en tiempo de compilación? Si Babel no selecciona qué polyfills aplicar , ¿cómo sucede esto durante el tiempo de ejecución? ¿Alguien puede explicarme esto en detalle?
  2. ¿Cuáles son las diferencias entre usar las opciones de targets para configurar los entornos de destino o usar la lista de browserlist para configurar los entornos de destino? Además, estoy confundido acerca de la consulta predeterminada para targets . En el documento de babel dice

Debido a esto, el comportamiento de preset-env es diferente al de browserslist: no utiliza la consulta predeterminada cuando no se encuentran objetivos en su configuración de Babel o browserslist. Si desea utilizar la consulta predeterminada, deberá pasarla explícitamente como destino:

Entonces, al tener solo { "presets": ["@babel/preset-env"] } no nos dará la consulta predeterminada y tenemos que establecer explícitamente el objetivo en los valores predeterminados como en "presets": [["@babel/preset-env", { "targets": "defaults" }]] ?

  1. Esto se relaciona con mi segunda pregunta: si tengo un proyecto que tiene "@babel/preset-env" pero no tiene una browserlist definida ni tengo { "targets": "defaults" } , ¿sigo polillenando algo o en este caso no estamos enviando y polyfills?
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

  1. Babel no está seleccionando polyfills para su cliente, Babel solo se ejecuta en la etapa de compilación y genera los archivos de salida para usted, ahora depende de usted si desea servir esos archivos para todos sus clientes o no. Babel no se ejecuta en su servidor, ni en el lado del cliente, la única vez que se ejecuta es en la etapa de construcción.

  2. Cierto, si no establece su objetivo, no se aplicará ningún objetivo. Significa que babel transformará su código más reciente para admitir demasiados navegadores que aumentarán el tamaño de su archivo (o el rendimiento del lado del cliente), por eso recomiendan especificar objetivos.

  3. Justo lo contrario, en ese caso, Babel se transformará demasiado, al apuntar a objetivos específicos, Babel hará menos trabajo y solo admitirá versiones posteriores de los navegadores (según lo especifique).

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!