Thumbnail for article Migrasi ke Biome
Photo by Thomas Chan on Unsplash
2 minute(s) read

Migrasi ke Biome

Menuliskan sedikit tentang proses migrasi dari ESLint & Prettier ke Biome.

DevelopmentPracticeJavascript

Kita pasti sudah sering mendengar / menggunakan ESLint sebagai linter dan Prettier sebagai formatter dalam sebuah project JavaScript. Seiring berjalannya waktu pasti ada library baru terutama dalam ekosistem JavaScript, salah satunya adalah Biome sebagai tool yang menggabungkan formatter dan linter.


Apa itu Biome?

Biome adalah suatu library untuk menerapkan linter dan formatter untuk project JavaScript kita. Dulunya library ini bernama rome dan sekarang sudah tidak dimaintain lagi, sehingga dilanjutkan oleh komunitas dan diberi nama Biome. Jika ingin melihat cerita lengkapnya, bisa melalui tautan berikut:

Memulai Migrasi

Untuk proses migrasi dari ESLint dan Prettier sendiri sudah dituliskan pada dokumentasi Biome. Yang terlihat berbeda antara ESLint dan Biome adalah penulisan rule-nya. Jika di ESLint menggunakan kebab-case, di Biome sendiri menggunakan camelCase untuk penulisan rule-nya.

Untuk instalasinya dapat menjalankan perintah:

pnpm add --save-dev --save-exact @biomejs/biome
pnpm biome init

Lalu, jalankan perintah untuk memindahkan konfigurasi dari ESLint ke Biome:

pnpm biome migrate eslint --write

Dan perintah untuk memindahkan konfigurasi Prettier:

pnpm biome migrate prettier --write

Pada kasus saya, ada penggunaan plugin Prettier untuk Tailwind. Di Biome sendiri sudah membuatkan rule sendiri untuk menerapkan sorted class untuk utility framework seperti Tailwind:

Akhirnya, kita bisa menghapus ESLint dan Prettier serta config / plugin tambahannya jika ada:

pnpm remove eslint prettier eslint-config-next prettier-plugin-tailwindcss

Kita juga bisa menambahkan script baru pada file package.json untuk menjalankan linter dan formatter dari Biome:

"scripts": {
  "lint": "biome lint",
  "lint:write": "biome lint --write",
  "lint:write:unsafe": "biome lint --write --unsafe",
  "format": "biome format",
  "format:write": "biome format --write"
},

Kesimpulan

Proses migrasi cukup smooth. Mungkin ada beberapa rules yang masih work in progress seperti useSortedClasses tadi, sehingga ada beberapa algoritma yang belum diadaptasi. Proses pengecekan dari Biome juga cukup cepat, seperti klaim pada website-nya:

Menjalankan perintah Biome
Menjalankan perintah Biome

Kita juga bisa melihat progress development dari Biome melalui issue berikut:

Jika kalian ingin tahu kode lebih lengkap terkait proses migrasi pada post ini dapat mengunjungi pull request berikut:

Sekian dan terima kasih.