Selecciona y configura herramientas de compilación según las prácticas recomendadas.
Hoy web.dev lanzará una iniciativa nueva llamada tooling.report. Se trata de un sitio web que les brinda a los desarrolladores web una descripción general de las funciones compatibles con una selección de herramientas de compilación populares. Creamos este sitio para ayudarte a elegir la herramienta de compilación adecuada para tu próximo proyecto, decidir si vale la pena migrar de una herramienta a otra o descubrir cómo incorporar las prácticas recomendadas en la configuración de las herramientas y la base de código. Las herramientas tienen diferentes áreas de enfoque y satisfacen un conjunto distinto de necesidades, lo que significa que la selección y configuración de herramientas implica compensaciones. Con tooling.report, nuestro objetivo es explicar estas compensaciones y documentar cómo seguir las prácticas recomendadas con cualquier herramienta de compilación determinada.
¿Le parece emocionante? Visita tooling.report para comenzar a explorar o continúa leyendo para obtener más información sobre cómo y por qué desarrollamos este sitio.
Las herramientas de compilación suelen interponerse en nuestro camino
En GoogleChromeLabs, compilamos aplicaciones web como Squoosh y Proxx, así como sitios web como el de Chrome Dev Summit 2019. Al igual que con cualquier proyecto de desarrollo web, por lo general, comenzamos con el análisis de la infraestructura del proyecto, como el entorno de hosting, los frameworks y la configuración de nuestra herramienta de compilación. Esa infraestructura se actualiza a medida que avanza el proyecto: se agregan nuevos complementos para adaptarse a los frameworks o las técnicas que adoptamos, o se cambia la forma en que escribimos código para que nuestras herramientas de compilación entiendan mejor lo que intentamos lograr. A lo largo de este proceso, nos hemos dado cuenta de que las herramientas que seleccionamos se interponen en nuestro camino.
Nuestro equipo se enfoca en proporcionar la mejor experiencia web a los usuarios, lo que, a menudo, permite perfeccionar la forma en que se ensamblan y entregan nuestros elementos de frontend. Por ejemplo, si una secuencia de comandos de subproceso principal y una secuencia de comandos de un trabajador web tienen dependencias compartidas, nos gustaría descargar las dependencias una vez en lugar de empaquetarlas dos veces para cada secuencia de comandos. Algunas herramientas admiten esta función desde el primer momento, otras necesitan un esfuerzo de personalización significativo para cambiar los comportamientos predeterminados y, para otras, es absolutamente imposible.
Esta experiencia nos llevó a investigar qué pueden y no pueden hacer las diferentes herramientas de compilación. Nuestra esperanza era crear una lista de tareas para las funciones, de modo que la próxima vez que comencemos un proyecto nuevo, podamos evaluar y elegir qué herramienta se adapta mejor a nuestro proyecto.
Nuestro enfoque
¿Cómo podemos evaluar y comparar diferentes herramientas de compilación en un solo lugar? Lo abordamos escribiendo casos de prueba.
Nuestro equipo analizó y diseñó criterios de prueba que creemos que representan prácticas recomendadas para el desarrollo web. Nos enfocamos específicamente en cómo ofrecer experiencias del usuario rápidas, responsivas y fluidas, con la exclusión intencional de pruebas relacionadas con la experiencia del desarrollador para evitar medir dos resultados incomparables.
Una vez que se creó la lista de pruebas, escribimos una secuencia de comandos de compilación para cada herramienta a fin de verificar si la herramienta puede cumplir con los criterios de éxito de la prueba. Como conjunto inicial, decidimos investigar Webpack v4, Rollup v2 y Parcel v2. También probamos Browserify y Gulp, ya que una gran cantidad de proyectos aún usan esta configuración. Para que se apruebe una prueba, solo se pueden usar las funciones de la herramienta documentadas públicamente o un complemento de la herramienta. Después de escribir el conjunto inicial de pruebas, trabajamos con los autores de la herramienta de compilación para asegurarnos de usar sus herramientas de manera correcta y representarlas de manera justa.
Solo usamos ${tool_name}, ¿aun así debería importarme?
En muchos equipos, hay personas dedicadas a mantener la infraestructura de compilación, y es posible que otros miembros del equipo nunca puedan tomar una decisión cuando se trata de compilar herramientas. Esperamos que este sitio aún sea útil para ti, ya que es una forma de establecer expectativas sobre las herramientas en las que confías. En cada prueba, incluimos una explicación de por qué es importante, junto con recursos adicionales. Además, si quieres adoptar una práctica recomendada con la herramienta que prefieras, la configuración de prueba de nuestro repositorio contiene los archivos de configuración necesarios para hacerlo.
¿Puedo contribuir con el sitio?
Si crees que debería probarse una función determinada que no se encuentra disponible en este momento, propóngala en un problema de GitHub para iniciar la conversación. Nuestro objetivo es encapsular los casos de uso del mundo real y cualquier prueba adicional que evalúe mejor estos resultados.
Si quieres escribir pruebas para herramientas que no incluimos en el conjunto inicial, te damos la bienvenida también. Consulta CONTRIBUTING.md para obtener más información.