Bun 1.2.19 Memperkenalkan Instalasi Paket Terisolasi untuk Performa Windows 10x Lebih Cepat

Tim Komunitas BigGo
Bun 1.2.19 Memperkenalkan Instalasi Paket Terisolasi untuk Performa Windows 10x Lebih Cepat

Pembaruan terbaru Bun menghadirkan fitur yang mengubah permainan dan menjanjikan revolusi dalam cara paket JavaScript diinstal, terutama untuk pengguna Windows. Node linker terisolasi yang baru, terinspirasi dari pendekatan pnpm, akan dirilis bersama Bun v1.2.19 dan mengatasi masalah lama dalam manajemen dependensi sambil memberikan peningkatan performa yang mengesankan.

Peningkatan Performa Masif di Windows

Mode instalasi terisolasi memberikan peningkatan kecepatan yang luar biasa, khususnya pada sistem Windows di mana pengguna dapat mengharapkan instalasi paket 10x hingga 20x lebih cepat. Meskipun pengguna macOS dan Linux akan melihat peningkatan yang lebih sederhana, dampak performa tetap positif di semua platform. Peningkatan signifikan ini membuat Bun menjadi pilihan yang lebih menarik bagi developer yang bekerja di lingkungan multi-platform.

Peningkatan Performa:

  • Windows : Instalasi 10x hingga 20x lebih cepat
  • macOS / Linux : Dampak performa positif minor atau netral

Keandalan yang Ditingkatkan untuk Monorepos

Selain kecepatan, linker terisolasi mengatasi masalah keandalan kritis yang telah mengganggu manajemen paket JavaScript. Dengan mencegah phantom dependencies dan dangling symlinks, fitur ini membuat instalasi Bun jauh lebih dapat diandalkan di lingkungan monorepo. Sistem ini memastikan bahwa dependensi hanya dapat mengakses versi paket lain yang secara eksplisit mereka tentukan dalam file package.json mereka sendiri, menghilangkan error runtime misterius yang disebabkan oleh resolusi dependensi implisit.

Phantom dependencies: paket yang berfungsi dalam development tetapi tidak dideklarasikan secara eksplisit sebagai dependensiDangling symlinks: symbolic link yang rusak yang menunjuk ke file atau direktori yang tidak ada

Struktur Direktori:

node_modules/
├── .modules.yaml
├── [email protected]/
│   └── node_modules/
│       └── [email protected]
└── my-dependency -> .modules/[email protected]/

Daya Tarik Ekosistem yang Berkembang

Umpan balik komunitas mengungkapkan peran Bun yang berkembang melampaui sekadar manajemen paket. Developer semakin mengadopsi Bun untuk shell scripting, operasi database, dan utility scripts, memuji fitur built-in seperti dukungan SQLite dan fungsionalitas klien S3. Keserbagunaan ini memposisikan Bun sebagai runtime JavaScript yang komprehensif daripada sekadar package manager lainnya.

Bun perlahan menjadi solusi all-in-one untuk ekosistem js

Linker terisolasi merepresentasikan langkah lain menuju pendekatan terpadu ini, menawarkan developer alternatif yang lebih andal dan cepat untuk instalasi npm tradisional sambil mempertahankan kompatibilitas dengan workflow yang ada.

Fitur yang Didukung:

  • Instalasi dependensi tunggal dasar
  • Paket dengan scope (@types/*)
  • Dependensi transitif
  • Dependensi siklik
  • Dependensi folder
  • Dukungan workspace
  • Verifikasi struktur symlink

Keterbatasan Saat Ini dan Prospek Masa Depan

Meskipun fitur ini siap untuk pengujian melalui canary release channel, bug khusus Windows saat ini mencegah tim Bun menggunakan instalasi terisolasi di repository mereka sendiri. Masalah ini perlu diselesaikan sebelum rilis stabil, meskipun early adopter dapat bereksperimen dengan fitur ini menggunakan bun install --linker=isolated atau dengan mengkonfigurasinya dalam file bunfig.toml mereka.

Implementasi ini mendukung semua skenario manajemen paket utama termasuk scoped packages, peer dependencies, workspaces, dan bahkan siklus dependensi yang kompleks, menjadikannya solusi yang robust untuk lingkungan development dunia nyata.

Referensi: implement nodeLinker: isolated in bun install #20440