Select and configure build tools based on best practices.
Updated
Hoy Web.dev lanza una nueva iniciativa llamada tooling.report. Es un sitio web que 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 ayudarlo a elegir la herramienta de construcci贸n adecuada para su pr贸ximo proyecto, decidir si vale la pena migrar de una herramienta a otra o descubrir c贸mo incorporar las mejores pr谩cticas en su configuraci贸n de herramientas y base de c贸digo. Las herramientas tienen diferentes 谩reas de enfoque y se adaptan a un conjunto diferente de necesidades, lo que significa que seleccionar y configurar herramientas implica hacer concesiones. Con tooling.report, nuestro target es explicar estas compensaciones y documentar c贸mo seguir las mejores pr谩cticas con cualquier herramienta de compilaci贸n determinada.
It sounds exciting? Visit tooling.report to start exploring, or read on to learn more about why and how we developed this site.
On GoogleChromeLabs, we have created web applications like
Squoosh and Proxx, as well as websites such as Chrome Developer Summit 2019. As with any web development project, we usually start by discussing the infrastructure of the project, such as the hosting environment, frameworks, and our build tool settings. That infrastructure is updated as the project progresses: new plugins are added to accommodate the frameworks or techniques we adopt, or the way we write code is changed so that our build tools better understand what we are trying to achieve. Throughout this process, we have often come to realize that the tools we select end up getting in our way.
Nuestro equipo est谩 enfocado en brindar la mejor experiencia web a los usuarios, lo que a menudo resulta en un ajuste fino de c贸mo se ensamblan y entregan nuestros activos frontend. Por ejemplo, si un script de hilo principal y un script de trabajador web tienen dependencias compartidas, nos gustar铆a descargar las dependencias una vez en lugar de agruparlas dos veces para cada script. Algunas herramientas admiten esto desde el primer momento, algunas necesitan un esfuerzo de personalizaci贸n significativo para cambiar los comportamientos predeterminados y, para otras, es completamente imposible.
This experience led us to investigate what different construction tools can and cannot do. Our hope was to create a feature checklist so that the next time we start a new project, we can evaluate and choose which tool is best suited for our project.
Our focus
How can we evaluate and compare different construction tools in one place? We approach it by writing test cases.
Nuestro equipo discuti贸 y dise帽贸 criterios de prueba que creemos representan las mejores pr谩cticas para el desarrollo web. Nos enfocamos espec铆ficamente en c贸mo brindar experiencias de Username r谩pidas, receptivas y fluidas, excluyendo intencionalmente las pruebas relacionadas con la experiencia del desarrollador para evitar medir dos resultados incomparables.
Once the test list was created, we went ahead and wrote a build script for each tool to check if the tool can meet the test success criteria. As an initial set, we decided to investigate webpack v4, Rollup v2, and Parcel v2. We also tested Browserify + Gulp as a large number of projects still use this setting. For a test to pass, only publicly documented functions of the tool or a plug-in for the tool can be used. After writing the initial set of tests, we work with the build tool authors to ensure that we use their tools correctly and represent them fairly.
En muchos equipos, hay persons dedicadas a mantener la infraestructura de construcci贸n, y es posible que otros miembros del equipo nunca puedan tomar una decisi贸n cuando se trata de herramientas de construcci贸n. Esperamos que este sitio siga siendo 煤til para usted tambi茅n, como una forma de establecer expectativas para las herramientas en las que conf铆a. Para cada prueba, hemos incluido una explicaci贸n de por qu茅 la prueba es importante junto con recursos adicionales. Y si desea adoptar una pr谩ctica recomendada con la herramienta de su elecci贸n, la configuraci贸n de prueba en nuestro repositorio contiene los archivos de configuraci贸n necesarios para hacerlo.
Can I contribute to the site?
If you think a currently missing function should be tested, please propose it in a GitHub issue to start the discussion. Our goal is to encapsulate real-world use cases, and any further testing that better evaluates these results is welcome.
If you'd like to write tests for tools that we didn't include in the starter set, we welcome that too! Please watch
CONTRIBUTING.md for more information.