Memilih dan mengonfigurasi alat build berdasarkan praktik terbaik.
Hari ini web.dev meluncurkan inisiatif baru yang disebut tooling.report. Ini adalah situs yang memberi developer web ringkasan fitur yang didukung di berbagai alat build populer. Kami membuat situs ini untuk membantu Anda memilih alat build yang tepat bagi project berikutnya, memutuskan apakah migrasi dari satu alat ke alat lainnya bermanfaat, atau mencari tahu cara menyertakan praktik terbaik ke dalam konfigurasi alat dan code base Anda. Alat memiliki area fokus yang berbeda dan memenuhi serangkaian kebutuhan yang berbeda, yang berarti memilih dan mengonfigurasi alat melibatkan beberapa kekurangan. Dengan tooling.report, kami ingin menjelaskan konsekuensi ini dan mendokumentasikan cara mengikuti praktik terbaik dengan alat build yang ada.
Kedengarannya menarik? Buka tooling.report untuk mulai menjelajah, atau baca terus untuk mempelajari lebih lanjut alasan dan cara kami mengembangkan situs ini.
Alat build sering menghalangi kami
Selama di GoogleChromeLabs, kami telah membuat aplikasi web seperti Squoosh dan Proxx, serta situs seperti yang ada di Chrome Dev Summit 2019. Seperti project pengembangan web lainnya, biasanya kita mulai dengan membahas infrastruktur project seperti lingkungan hosting, framework, dan penyiapan alat build. Infrastruktur tersebut diperbarui seiring berjalannya project: plugin baru ditambahkan untuk mengakomodasi framework atau teknik yang kami gunakan, atau cara kami menulis kode diubah sehingga alat build kami lebih memahami apa yang ingin kami capai. Selama proses ini, kami sering menemukan bahwa alat yang kami pilih justru menghambat kami.
Tim kami berfokus untuk memberikan pengalaman web terbaik kepada pengguna, yang sering kali menghasilkan hal-hal yang lebih mendetail terkait cara aset frontend kami disusun dan dikirimkan. Misalnya, jika skrip thread utama dan skrip pekerja web memiliki dependensi bersama, sebaiknya download dependensi satu kali, bukan memaketkannya dua kali untuk setiap skrip. Beberapa alat langsung mendukung hal ini, beberapa memerlukan upaya penyesuaian yang signifikan untuk mengubah perilaku default, dan untuk yang lainnya sangat tidak mungkin.
Pengalaman ini membuat kami menyelidiki berbagai alat build yang bisa dan tidak dapat dilakukan. Harapan kami adalah membuat checklist untuk berbagai fitur sehingga saat memulai project baru, kami dapat mengevaluasi dan memilih alat yang paling cocok untuk project kami.
Pendekatan kami
Bagaimana kita bisa mengevaluasi dan membandingkan berbagai alat build di satu tempat? Kami menanganinya dengan menulis kasus uji coba.
Tim kami membahas dan merancang kriteria pengujian yang kami yakini mewakili praktik terbaik untuk pengembangan web. Kami secara khusus berfokus pada cara memberikan pengalaman pengguna yang cepat, responsif, dan lancar, yang sengaja mengecualikan pengujian terkait pengalaman developer untuk menghindari mengukur dua hasil yang tidak sebanding.
Setelah daftar pengujian dibuat, kami melanjutkan dan menulis skrip build untuk setiap alat guna memeriksa apakah alat tersebut dapat memenuhi kriteria keberhasilan pengujian. Sebagai permulaan, kami memutuskan untuk menyelidiki webpack v4, Rollup v2, dan Parcel v2. Kami juga menguji Browserify + Gulp karena sejumlah besar project masih menggunakan penyiapan ini. Agar pengujian lulus, hanya fitur alat yang didokumentasikan secara publik atau plugin untuk alat yang dapat digunakan. Setelah serangkaian pengujian awal ditulis, kami bekerja sama dengan penulis alat build untuk memastikan bahwa kami menggunakan alat mereka dengan benar dan merepresentasikannya dengan adil.
Kami hanya menggunakan ${tool_name}, apakah saya tetap peduli?
Di banyak tim, ada orang yang berkomitmen untuk memelihara infrastruktur build, dan anggota tim lainnya mungkin tidak pernah bisa membuat pilihan dalam hal mem-build alat. Kami harap situs ini juga juga berguna bagi Anda, sebagai salah satu cara untuk menetapkan ekspektasi terhadap alat yang Anda andalkan. Untuk setiap pengujian, kami telah menyertakan penjelasan tentang pentingnya pengujian tersebut beserta referensi tambahan. Dan jika Anda ingin menggunakan praktik terbaik dengan alat pilihan Anda, penyiapan pengujian di repositori kami berisi file konfigurasi yang diperlukan untuk melakukannya.
Dapatkah saya berkontribusi untuk situs ini?
Jika menurut Anda fitur tertentu harus diuji tetapi saat ini belum ada, usulkan fitur tersebut di masalah GitHub untuk memulai diskusi. Kami bertujuan untuk merangkum kasus penggunaan dunia nyata, dan semua pengujian tambahan yang menilai hasil ini dengan lebih baik diperbolehkan.
Jika Anda ingin menulis pengujian untuk alat yang tidak kami sertakan di set awal, kami menerimanya juga. Lihat CONTRIBUTING.md untuk informasi selengkapnya.