Sélectionnez et configurez les outils de construction en fonction des meilleures pratiques.
Mise à jour
Aujourd'hui, web.dev lance une nouvelle initiative appelée tooling.report. Il s'agit d'un site Web qui fournit aux développeurs Web un aperçu des fonctionnalités prises en charge par une sélection d'outils de création populaires. Nous avons créé ce site pour vous aider à choisir le bon outil de construction pour votre prochain projet, à décider s'il vaut la peine de migrer d'un outil à un autre ou à découvrir comment intégrer les meilleures pratiques dans votre base de code et la configuration de vos outils. Les outils ont différents domaines d'intérêt et sont adaptés à un ensemble différent de besoins, ce qui signifie que la sélection et la configuration des outils impliquent des compromis. Avec tooling.report, notre objectif est d'expliquer ces compromis et de documenter comment suivre les meilleures pratiques avec un outil de construction donné.
Cela semble excitant? Visitez tooling.report pour commencer à explorer, ou lisez la suite pour en savoir plus sur pourquoi et comment nous avons développé ce site.
Sur GoogleChromeLabs, nous avons créé des applications Web comme
Squoosh y Proxx, ainsi que des sites Web tels que Sommet des développeurs Chrome 2019. Comme pour tout projet de développement Web, nous commençons généralement par discuter de l'infrastructure du projet, comme l'environnement d'hébergement, les cadres et les paramètres de notre outil de création. Cette infrastructure est mise à jour au fur et à mesure de l'avancement du projet: de nouveaux plugins sont ajoutés pour s'adapter aux cadres ou aux techniques que nous adoptons, ou la façon dont nous écrivons le code est modifiée afin que nos outils de construction comprennent mieux ce que nous essayons d'accomplir. Tout au long de ce processus, nous nous sommes souvent rendu compte que les outils que nous sélectionnons finissent par nous gêner.
Notre équipe se concentre sur la meilleure expérience Web pour les utilisateurs, ce qui aboutit souvent à un réglage fin de la façon dont nos actifs frontaux sont assemblés et livrés. Par exemple, si un script de thread principal et un script de travail Web ont des dépendances partagées, nous aimerions télécharger les dépendances une fois au lieu de les regrouper deux fois pour chaque script. Certains outils prennent en charge cela dès la sortie de la boîte, certains nécessitent un effort de personnalisation important pour modifier les comportements par défaut, et pour d'autres, c'est complètement impossible.
Cette expérience nous a amenés à étudier ce que les différents outils de construction peuvent et ne peuvent pas faire. Notre espoir était de créer une liste de contrôle des fonctionnalités afin que la prochaine fois que nous démarrons un nouveau projet, nous puissions évaluer et choisir l'outil le mieux adapté à notre projet.
Notre objectif
Comment évaluer et comparer différents outils de construction en un seul endroit? Nous l'abordons en écrivant des cas de test.
Notre équipe a discuté et conçu des critères de test qui, selon nous, représentent les meilleures pratiques pour le développement Web. Nous nous concentrons spécifiquement sur la façon de fournir des expériences utilisateur rapides, réactives et fluides, en excluant intentionnellement les tests liés à l'expérience des développeurs pour éviter de mesurer deux résultats inégalés.
Une fois la liste de tests créée, nous sommes allés de l'avant et avons écrit un script de construction pour chaque outil afin de vérifier si l'outil peut répondre aux critères de réussite des tests. Dans un premier temps, nous avons décidé d'étudier Webpack v4, Rollup v2 et Parcel v2. Nous avons également testé Browserify + Gulp car un grand nombre de projets utilisent toujours ce paramètre. Pour qu'un test réussisse, seules les fonctions documentées publiquement de l'outil ou un plug-in pour l'outil peuvent être utilisés. Après avoir écrit l'ensemble initial de tests, nous travaillons avec les auteurs des outils de construction pour nous assurer que nous utilisons correctement leurs outils et les représentons équitablement.
Dans de nombreuses équipes, il y a des personnes dédiées à l'entretien de l'infrastructure du bâtiment, et les autres membres de l'équipe peuvent ne jamais être en mesure de prendre une décision en ce qui concerne les outils de construction. Nous espérons que ce site continuera à vous être utile aussi, comme moyen de définir les attentes pour les outils en lesquels vous avez confiance. Pour chaque test, nous avons inclus une explication des raisons pour lesquelles le test est important ainsi que des ressources supplémentaires. Et si vous souhaitez adopter une bonne pratique avec l'outil de votre choix, la configuration de test dans notre référentiel contient les fichiers de configuration nécessaires pour ce faire.
Puis-je contribuer au site?
Si vous pensez qu'une fonction actuellement manquante doit être testée, veuillez le proposer dans un numéro GitHub pour lancer la discussion. Notre objectif est d'encapsuler des cas d'utilisation réels, et tout autre test qui évalue mieux ces résultats est le bienvenu.
Si vous souhaitez écrire des tests pour des outils que nous n'avons pas inclus dans l'ensemble de démarrage, nous vous en félicitons également! Regarde s'il te plait
CONTRIBUER.md pour plus d'informations.