Photo from unsplash: ansgar-scheffold-_fP6zNOrbZI-unsplash_ixywvw

Vite, Build Tool Lebih Cepat dari Create React App

Sejauh ini, Create React App selalu menjadi default untuk membuat aplikasi React, apakah ada yang lebih baik?

Theodorus Clarence

Theodorus Clarence

May 02, 2021

––– views

Available in English

4 min read

0 likes

Introduction

Vite meningkatkan developer experience secara signifikan dan memungkinkan untuk install time, build time awal, dan hot reload yang sangat cepat

Dalam kurun waktu yang cukup lama, kita selalu menggunakan Webpack untuk bundler di React yang terdapat dalam Create React App. Bahkan, sampai sekarang CRA masih menggunakan Webpack sebagai pilihan bundlernya. Walaupun tidak dapat dipungkiri Webpack sangat baik sebagai bundler, dan banyak javascript application yang menggunakannya, kadang butuh waktu yang cukup lama untuk boot up dev server pertama kali. Kadang bisa 1 sampai 2 menit untuk project yang sudah cukup besar, hot reload pada CRA juga terasa lemot saat project sudah cukup besar.

What is Vite?

Vite (Kata dari bahasa perancis dengan arti "cepat", penyebutannya /vit/) adalah sebuah build tool yang melakukan pre-bundling debendencies menggunakan esbuild. Esbuild ditulis dalam bahasa Go dan dapat melakukan pre-bundling dependencies 10-100x lebih cepat daripada kebanyakan JavaScript-based bundler.

Vite memiliki 2 fitur besar:

Aplikasi Vite bekerja sama persis seperti normalnya aplikasi React, kita bisa menggunakan semua fitur yang ada sama dengan Create React App, dengan developer experience yang lebih cepat.

How fast is Vite?

Saya mencoba untuk membandingkan installation time, dan build time sampai server berjalan, dan ini hasilnya:

Installation Time

Compare Installation

Ini adalah command yang saya gunakan untuk menginstall Vite dan CRA. Saya menjalankan yarn command pada Vite karena Vite hanya melakukan scaffolding saja pada saat instalasi dan kita harus menginstall dependenciesnya sendiri

Compare Installation

Instalasi menggunakan CRA memakan waktu yang sangat signifikan daripada Vite. Vite selesai hanya dalam kurun waktu 26 detik, dan Create React App memakan waktu 1 menit 12 detik. Vite sangat cepat dalam waktu instalasi.

Build Time

Instalasi hanya dijalankan sekali pada saat awal kita membuat project, tetapi build time akan berjalan setiap kali kita mau develop project yang ktia miliki! Ini jauh lebih penting dan bisa menujadi turning point untuk pindah dari CRA ke Vite.

Compare Build Time

Hasilnya adalah, Vite hanya membutuhkan waktu sekitar 300ms, bahkan iTerm saya tidak menghitung waktu karena sangking cepatnya. Sedangkan Create React App memakan waktu sebanyak 22 detik sampai server berjalan.

Dan ini adalah project kosong, building time akan meningkat seiring dengan project kita yang semakin besar.

Try it out!

Saya menyarankan anda untuk mencoba sendiri dan merasakan kecepatannya, untuk mempersingkat, saya memiliki sebuah vite-react-tailwind starter template, dapat dicek di github saya. Kemudian buka terminal dan jalankan code berikut:

npx degit https://github.com/theodorusclarence/vite-react-tailwind-starter project-name

kemudian, install dependencies menggunakan

yarn
atau
npm install

To start the server run the code

yarn dev
atau
npm run dev

Bagaimana?

Hot reload dari Vite juga sangat cepat, coba ubah" codingan pada Landing Page di /pages/Home.jsx

Summary

Use the starter as a bonus!

Anda boleh menggunakan starter tersebut untuk project anda! Saya membuat starter tersebut untuk menghindari melakukan setup react-router, react helmet, absolute import, dan tailwindcss setiap kali saya membuat sebuah project. Coba gunakan starter itu untuk mempermudah dan kindly give it a star!

Dengan adanya Vite ditambah Next.js, sepertinya saya tidak akan menggunakan CRA lagi. Saya sudah pasti akan memilih Vite daripada CRA ketika harus membuat sebuah aplikasi yang ada authenticationnya, dan menggunakan Next.js ketika membuat static site.

Share this article onx

Enjoying this post?

Don't miss out 😉. Get an email whenever I post, no spam.

Subscribe Now

New Blog Post

20m ago

Mastering Gradient Borders in CSS 🌈✨

A talk is happening

2h ago

Sharing My 2023 Retrospective

New Blog Post

4h ago

and many more!