Instalasi Node telah lambat selama bertahun-tahun. Anda menjalankan npm install, berjalan ke mesin kopi, kembali, dan CI masih menyelesaikan @types/node. Aube mengubah persamaan itu. Ia menyelesaikan instalasi CI hangat dari proyek nyata 1.400 paket dalam 139 milidetik, yang sekitar 7,3x lebih cepat daripada pnpm dan 3x lebih cepat daripada Bun pada perlengkapan yang sama. Bagian yang sangat menarik: ia membaca dan menulis file lockfile Anda yang sudah ada, sehingga Anda bisa mencobanya pada hari Senin tanpa meminta siapa pun untuk bermigrasi.
Panduan ini mencakup apa itu Aube, bagaimana ia mencapai angka-angka tersebut, cara menginstalnya, bagaimana perbandingannya dengan pnpm, npm, yarn, dan Bun, dan di mana posisinya jika Anda membangun API dengan alat seperti Apidog setiap hari.
Apa Itu Aube?
Aube adalah manajer paket Node.js cepat yang dibangun oleh en.dev dan dirilis di bawah lisensi MIT. Nama ini berarti “fajar” dalam bahasa Prancis dan diucapkan “ohb”. Proyek ini masih dalam versi beta (v1.0.0-beta.10 pada saat penulisan) dan menargetkan kompatibilitas dengan pnpm v11 sebagai tujuan utamanya.

Penjelasannya lugas. Aube menggunakan model pada disk yang sama dengan pnpm, yaitu penyimpanan global yang dapat diakses berdasarkan konten ditambah tata letak symlink yang terisolasi, namun alur instalasinya ditulis dalam bahasa asli yang multithreaded, bukan JavaScript. Tata letak yang sama, mesin yang lebih cepat. Pilihan desain tunggal itulah yang memungkinkannya berada di atas Bun dalam beberapa skenario benchmark sambil tetap menulis `pnpm-lock.yaml` kembali ke tempatnya.
Jika Anda pernah bermigrasi antar manajer paket, Anda tahu bahwa biaya sebenarnya bukanlah alatnya; melainkan biaya sosial untuk membuat semua orang di tim Anda mengubah cara mereka menjalankan install. Aube menghindari itu dengan membaca langsung `pnpm-lock.yaml`, `package-lock.json`, `npm-shrinkwrap.json`, `yarn.lock`, dan `bun.lock`. Anda dapat menjalankannya secara lokal sementara CI Anda masih menggunakan pnpm, dan tidak ada yang berubah bagi rekan tim.
Benchmark Aube: seberapa cepatkah “tercepat”?
Fixture benchmark adalah proyek dunia nyata sekitar 1.400 paket yang diukur dengan hyperfine. Setiap skenario mengasumsikan lockfile yang sudah dikomit. Sumbu yang bervariasi adalah kehangatan cache: hangat membersihkan `node_modules` tetapi mempertahankan penyimpanan global dan cache paket, dingin menghapus semuanya.
Angka-angka dari benchmark resmi (aube 1.0.0-beta.3, bun 1.3.12, pnpm 10.33.0, npm 11.12.1, yarn 1.22.22, node 24.15.0):
| Skenario | aube | bun | pnpm | yarn | npm |
|---|---|---|---|---|---|
| Instalasi CI (cache hangat, tanpa node_modules) | 139ms | 416ms | 1.01s | 2.43s | 2.78s |
| Instalasi CI (cache dingin, tanpa node_modules) | 1.12s | 935ms | 1.57s | 6.60s | 4.21s |
install && jalankan test (sudah terinstal) |
21ms | 42ms | 453ms | 351ms | 615ms |
Tambah dependensi (tambahkan is-odd) |
209ms | 414ms | 1.33s | 2.55s | 2.89s |
Beberapa hal menonjol. Instalasi CI hangat adalah angka utama karena mencerminkan kasus paling umum dalam pipeline nyata, di mana runner mengembalikan cache dan penyimpanan global Anda masih memiliki setiap tarball yang di-hash ke dalamnya. Dalam skenario tersebut, Aube sekitar 7,3x lebih cepat daripada pnpm dan 3x lebih cepat daripada Bun.
Skenario `install && run test` mengukur siklus pengembang sehari-hari. Setiap alat harus memutuskan “apakah saya perlu menginstal dulu, lalu menjalankan skrip?” Aube dapat melewati seluruh pekerjaan instalasi ketika file status instalasinya baru, sehingga seluruh siklus `install && test` kembali dalam 21ms. Alat lain masih memvalidasi ulang lockfile sebelum menjalankan skrip, dari situlah asal overhead 400ms-600ms.
Pada cache dingin, Bun sedikit mengungguli Aube (935ms vs 1.12s) karena jalur pengambilan tarball Bun sangat disetel dengan baik dan instalasi dingin didominasi oleh I/O. Skenario hangat adalah yang berjalan ribuan kali sehari pada tim pengembang biasa; dingin berjalan sebulan sekali saat Anda menghapus runner.
Di seluruh set fixture, dokumentasi menyebutkan puncak hingga 22x lebih cepat daripada pnpm dan hingga 3x lebih cepat daripada Bun tergantung pada skenario. Anda dapat mereproduksi semua ini secara lokal dengan `mise run bench` dari repo Aube.
Mengapa Aube Lebih Cepat daripada pnpm dan Bun
Tiga pilihan desain yang menjadi kuncinya.
Alur instalasi native, multithreaded. npm, pnpm, dan yarn semuanya menjalankan mesin instalasi di Node.js. Itu berarti setiap hash, setiap ekstraksi tarball, setiap panggilan symlink harus membayar biaya dispatch JavaScript. Aube memindahkan jalur yang paling sering diakses keluar dari V8 dan ke runtime yang dikompilasi secara native dan multithreaded. Bun melakukan hal serupa tetapi mengirimkan runtime JavaScript penuh bersama dengan manajer paketnya; Aube dibangun khusus untuk jalur instalasi, yang merupakan bagian mengapa ia mengalahkan Bun dalam instalasi hangat.
Penyimpanan virtual global adalah default. pnpm v11 menambahkan `enableGlobalVirtualStore`, tetapi itu bukan default untuk instalasi proyek. Aube secara default menggunakan penyimpanan virtual global, sehingga proyek-proyek berulang dengan dependensi yang tumpang tindih sebagian besar akan menautkan ke pohon paket yang sudah ada di disk. Jika Anda memiliki tiga layanan yang semuanya menggunakan React, Vite, TypeScript, dan Playwright, file-file berat akan berada di satu tempat dan setiap proyek membuat symlink ke dalamnya. Dokumentasi memperkirakan ~90% lebih sedikit ruang disk daripada npm dalam pengaturan mono-repo yang khas.
Short-circuiting instalasi dengan file status baru. `aube run test` pertama-tama memeriksa file status instalasi yang ringkas. Jika hash `package.json` dan lockfile Anda cocok dengan file status, fase instalasi adalah panggilan stat tunggal dan pengujian segera dijalankan. Inilah yang menurunkan angka `install && test` menjadi 21ms.
Tidak ada ini yang ajaib. Inilah yang Anda dapatkan ketika Anda mengambil tata letak pnpm, menghilangkan bootstrap JavaScript, dan merancang CLI berdasarkan asumsi bahwa 99 persen instalasi adalah “tidak ada yang benar-benar berubah.”
Cara Menginstal Aube
Jalur yang direkomendasikan adalah mise, manajer alat poliglota:
mise use -g aube
Periksa apakah sudah ada di PATH Anda:
aube --version
Jika Anda lebih memilih npm:
npm install -g @endevco/aube
Di macOS atau Linux dengan Homebrew, Endev tap menyediakannya:
brew install endevco/tap/aube
Di dalam sebuah proyek, Anda dapat mengunci versi Aube secara lokal:
mise use aube
Itu menulis `aube` sebagai alat di `mise.toml` Anda, yang berarti setiap shell yang masuk ke folder proyek akan mendapatkan versi yang sama. Tidak ada lagi “berfungsi di mesin saya karena saya menginstal pnpm 10 tahun lalu.” Dokumentasi instalasi juga mencakup opsi tarball dan per-OS.
Perintah Harian yang Akan Benar-benar Anda Gunakan
Antarmuka perintah sangat mirip dengan pnpm, sehingga memori otot mudah dialihkan:
aube install # instal dependensi
aube add react # tambahkan dependensi
aube add -D vitest # tambahkan dependensi dev
aube remove react # hapus dependensi
aube update # perbarui dalam rentang package.json
aube run build # jalankan skrip package.json
aube test # jalankan skrip test, instal terlebih dahulu jika usang
aube exec vitest # jalankan biner lokal
aube dlx cowsay hi # jalankan paket di lingkungan sementara
aube ci # instalasi bersih, beku untuk CI
Anda dapat menyingkat sebagian besar perintah tersebut. Jika skrip ada di `package.json`, `aube dev` sama dengan `aube run dev`. Ada juga dua shims multicall yang dikirimkan dalam biner yang sama:
aubr build # aube run build
aubx cowsay hi # aube dlx cowsay hi
Gunakan `aube ci` dalam pipeline. Ini menghapus `node_modules`, mengonfirmasi bahwa lockfile baru untuk `package.json` saat ini, lalu menginstal. Jika lockfile melenceng, ia akan gagal dengan keras, yang memang Anda inginkan di CI.
Kompatibilitas Lockfile
Inilah fitur yang membuat Aube menjadi pilihan adopsi berisiko rendah. Anda tidak perlu berkomitmen untuk mengganti seluruh tim.
| Lockfile | Membaca | Menulis di tempat |
|---|---|---|
aube-lock.yaml |
ya | ya |
pnpm-lock.yaml v9 |
ya | ya |
package-lock.json v2/v3 |
ya | ya |
npm-shrinkwrap.json |
ya | ya |
yarn.lock (v1 klasik + v2+ berry) |
ya | ya |
bun.lock |
ya | ya |
Pola praktisnya terlihat seperti ini. Tim Anda menggunakan pnpm. CI masih menjalankan `pnpm install --frozen-lockfile`. Anda menjalankan `aube install` secara lokal di mesin Anda. Ini membaca `pnpm-lock.yaml`, menghasilkan tata letak `node_modules` yang sama, dan menulis setiap pembaruan resolusi kembali ke `pnpm-lock.yaml` yang sama. Seorang rekan tim menarik cabang Anda, menjalankan `pnpm install`, dan tidak ada yang salah. Seiring waktu, jika Aube terbukti efektif, Anda memigrasikan CI. Jika tidak, Anda menghapusnya dan tidak ada yang di hilir yang tahu.
Dua peringatan. Lockfile pnpm v5 atau v6 yang lama perlu diupgrade dengan pnpm terlebih dahulu. Dan proyek yarn PnP (gaya `.pnp.cjs`) perlu kembali ke linker `node_modules` karena Aube menulis `node_modules`, bukan artefak PnP.
Default Aman Lebih Penting dari yang Anda Pikirkan
Jika Anda pernah dekat dengan basis kode JavaScript dalam 18 bulan terakhir, Anda pasti telah menyaksikan insiden rantai pasokan menumpuk. Panduan keamanan rantai pasokan npm mencakup polanya; kompromi npm Axios adalah salah satu kasus dunia nyata paling jelas tentang bagaimana satu dependensi populer dapat mengirimkan RAT lintas platform ke ribuan mesin pengembang.
Aube mengambil tiga default yang berpendapat bahwa instalasi adalah batas keamanan, bukan kenyamanan:
- Usia rilis minimum. Rilis baru menunggu usia minimum yang dapat dikonfigurasi sebelum Aube akan menginstalnya. Paket yang baru saja dikompromikan yang ditarik dalam dua jam tidak akan pernah menyentuh
node_modulesAnda. - Pemblokiran dependensi eksotis. Aube memblokir dependensi transisi yang bentuknya mencurigakan (URL tidak biasa, entri mirip patch, referensi Git di tempat yang biasanya membawa semver). Jika Anda secara eksplisit menginginkannya, Anda menyetujuinya.
- Persetujuan skrip siklus hidup. Skrip
postinstalldependensi dilewati secara default. Anda menjalankanaube approve-buildsuntuk mengizinkan paket tertentu (esbuild, node-sass, apa pun yang benar-benar Anda perlukan untuk membangun secara lokal). Paket yang skripnya dilewati akan muncul diaube ignored-builds.
Tiga perilaku tersebut tidak membuat Anda tidak rentan, tetapi mereka mengubah “Saya tidak tahu paket itu bahkan menjalankan kode” menjadi “Saya memilih untuk membiarkan paket itu menjalankan kode.” Itulah postur keamanan yang Anda inginkan sebelum insiden produksi Anda berikutnya.
Tata Letak Modul Node
Aube menggunakan tata letak node_modules yang terisolasi. `node_modules/` tingkat atas berisi dependensi yang dideklarasikan di `package.json` Anda. Dependensi transisi berada di balik node_modules/.aube/. File-file paket itu sendiri disimpan tepat sekali di $XDG_DATA_HOME/aube/store/, yang secara default adalah ~/.local/share/aube/store/.
Tiga konsekuensi:
- Beberapa proyek dengan dependensi yang tumpang tindih berbagi file paket di disk. Tidak ada lagi “Saya punya 12 salinan lodash di seluruh monorepo dan proyek sampingan saya.”
- Dependensi hantu lebih sulit. Jika sebuah paket tidak ada di `package.json` Anda, Anda tidak dapat `require`-nya dari tingkat atas, karena tidak ada di `node_modules/`. Ini adalah jaminan yang sama yang diberikan pnpm kepada Anda.
- Instalasi berulang menggunakan kembali file yang sudah ada di disk. Satu-satunya pekerjaan yang tersisa adalah hard-linking dari penyimpanan ke
node_modules/.aube/yang baru.
Jika sebelumnya Anda menggunakan tata letak node_modules datar (npm klasik atau yarn v1), harapkan untuk menemukan satu atau dua paket yang rusak yang mengandalkan impor hantu. Solusinya selalu “tambahkan ke package.json Anda.”
Ruang Kerja dan Monorepo
Aube mendukung ruang kerja dan protokol workspace::
aube install -r
aube run test -r
aube add zod --filter @acme/api
Jika repo Anda sudah memiliki `pnpm-workspace.yaml`, Aube akan membaca dan menuliskannya. Ruang kerja yang mengutamakan Aube yang baru menggunakan `aube-workspace.yaml`. Flag -r (rekursif) dan --filter memetakan ke semantik yang sama yang Anda harapkan dari pnpm, sehingga pengaturan turborepo dan nx tetap berfungsi tanpa perubahan.
Untuk monorepo API, angka CI cache hangat adalah yang paling penting. Jika pipeline Anda melakukan `install, build, test, publish contract` pada setiap penggabungan, memangkas `install` dari 1 detik pnpm menjadi 139 milidetik Aube di sepuluh paket akan terakumulasi menjadi menit nyata per hari.
Posisi Aube dalam Alur Kerja Pengembangan API
Jika Anda membangun dan menguji API, instalasi berada di jalur utama setiap refactor. Anda menyentuh skema permintaan, meregenerasi klien TypeScript, menginstal ulang, menjalankan tes kontrak terhadap server tiruan Anda, ulangi. Instalasi cepat bukanlah metrik kesombongan; itu adalah interval antara “Saya mengubah ini” dan “Saya tahu apakah ini rusak.”

Siklus praktis yang berfungsi dengan baik:
- Rancang dan tiru API di Apidog. Pendekatan schema-first lebih unggul daripada code-first untuk apa pun yang berkomunikasi dengan tim lain.
- Hasilkan klien berjenis (atau jalankan tes kontrak terhadap mock Apidog) di dalam proyek Node Anda.
- Gunakan Aube secara lokal untuk menjaga instalasi dalam kisaran milidetik saat Anda mengulang pada klien.
- Hubungkan rangkaian tes yang sama ke CI dengan
aube ci.
Pergeseran alat dari Postman selama setahun terakhir adalah bagian dari pola yang lebih besar: pengembang menginginkan alat yang cepat, berfokus pada lokal, dan aman secara default. Aube adalah cerita yang sama yang diterapkan pada langkah instalasi. Jika Anda sudah menjalankan Apidog di dalam VS Code, menambahkan Aube di sampingnya hanya membutuhkan satu baris mise use dan menghemat detik pada setiap hot reload.
Migrasi dari Setiap Manajer Paket
Dari npm. Jalankan aube install di proyek. Aube membaca package-lock.json dan menuliskannya kembali. Anda akan mendapatkan node_modules yang terisolasi alih-alih datar, jadi perhatikan impor hantu. Jika ada yang rusak, tambahkan paket yang hilang ke package.json dan lanjutkan. Alur kerja lengkap ada di panduan pengguna npm.
Dari pnpm. Ini adalah migrasi dengan friksi terendah karena tata letak pada disk sama. Aube membaca pnpm-lock.yaml v9 secara langsung. Protokol workspace: berfungsi. Filter berfungsi. Halaman pnpm-users mencantumkan beberapa flag yang berperilaku berbeda.
Dari yarn. Aube membaca lockfile v1 klasik dan v2+ berry. Pengguna Yarn PnP perlu beralih kembali ke mode nodeLinker: node-modules sebelum mencoba Aube, karena Aube menulis node_modules dan bukan .pnp.cjs.
Dari Bun. Aube membaca bun.lock. Perbedaan utamanya adalah manajer paket Bun sangat terikat dengan runtime JS Bun; Aube adalah alat instalasi mandiri yang berjalan terhadap versi Node.js apa pun. Jika Anda sudah menggunakan mise untuk manajemen versi Node, Aube akan masuk dengan cara yang sama.
Pertimbangan Dunia Nyata
Status Beta. Per April 2026, Aube adalah v1.0.0-beta.10. Dokumentasi secara eksplisit menyatakan: ini menargetkan kompatibilitas pnpm v11, tetapi belum diuji di banyak proyek. Perlakukan seperti alat pra-1.0 lainnya. Jalankan secara lokal terlebih dahulu, simpan lockfile Anda yang sudah ada, jangan pertaruhkan pipeline rilis produksi Anda padanya sampai Anda melihatnya berfungsi selama sebulan.
Apa yang di luar cakupan. Aube sengaja tidak menduplikasi apa yang sudah dilakukan mise. Manajemen runtime (env, runtime, setup, self-update) menjadi bagian mise. Beberapa pembantu akun registri (whoami, token, owner, search, pkg, set-script) adalah stub kompatibilitas yang mengarahkan Anda ke perintah npm sebagai gantinya. Jika skrip CI Anda memanggil salah satu dari itu, pertahankan npm sebagai cadangan.
Dukungan platform. Penginstal yang direkomendasikan adalah mise, yang mendukung macOS, Linux, dan Windows melalui WSL. Dukungan Windows native melalui tarball ada tetapi masih dalam tahap awal; periksa halaman instalasi untuk matriks saat ini.
Komunitas. Proyek ini memiliki Discord (tertuju dari beranda) dan 325 bintang di GitHub pada saat penulisan. Kecil tapi aktif. Buildkite menyediakan CI untuk proyek, yang dapat Anda lihat di root repo.
FAQ
Apa arti “aube”?Fajar, dalam bahasa Prancis. Diucapkan “ohb”. Slogan proyek ini adalah “fajar baru untuk instalasi Node.”
Apakah Aube pengganti langsung untuk pnpm?Mendekati. Ia menargetkan kompatibilitas pnpm v11 dan membaca format lockfile pnpm. Sebagian besar alur kerja pnpm dapat beralih tanpa perubahan. Beberapa perintah pnpm (manajemen runtime, beberapa pembantu registri) sengaja berada di luar cakupan karena mereka termasuk dalam alat lain.
Bisakah saya menggunakan Aube di CI sambil tetap menggunakan pnpm secara lokal?Ya, kedua arah berfungsi. Aube membaca dan menulis `pnpm-lock.yaml` di tempat, sehingga kedua alat dapat berbagi lockfile. Tim biasanya memulai dengan cara sebaliknya: Aube secara lokal, pnpm di CI, sampai semua orang merasa nyaman.
Bagaimana perbandingan Aube dengan Bun?Pada instalasi hangat, Aube sekitar 3x lebih cepat dari Bun karena Bun memvalidasi ulang lebih banyak status sebelum menginstal. Pada instalasi dingin, Bun sedikit unggul karena jalur pengambilannya sangat ketat. Bun juga mengirimkan runtime JS; Aube hanya untuk instalasi. Jika Anda sudah menggunakan Node, Anda tidak memerlukan runtime Bun untuk menggunakan Aube. Perbandingan tata letak terisolasi ala pnpm memberikan konteks mengapa pilihan tata letak itu penting.
Apakah Aube berfungsi di Windows?Melalui WSL, ya. Windows native berfungsi tetapi masih dalam tahap awal. mise adalah cara termudah untuk menginstal dan memperbarui di ketiga OS tersebut.
Apakah Aube open source?Ya, berlisensi MIT, kode sumber di GitHub.
Apa yang terjadi pada `pnpm-lock.yaml` saya yang sudah ada?Aube membacanya, melakukan instalasi, dan menulis kembali file yang sama dengan setiap perubahan resolusi. Rekan tim Anda yang menjalankan pnpm akan melihat perbedaan lockfile yang normal.
Kesimpulan
Untuk sebagian besar proyek Node pada tahun 2026, langkah instalasi lebih lambat dari yang seharusnya. Aube adalah manajer paket Node.js tercepat pada jalur instalasi hangat dan perintah berulang yang mendominasi alur kerja pengembang nyata: 139ms untuk instalasi CI 1.400 paket, 21ms untuk `install && test` ketika tidak ada yang berubah, 90% lebih sedikit ruang disk di seluruh mesin dengan beberapa proyek. Ini membaca lockfile Anda yang sudah ada, menangani default keamanan dengan serius, dan hanya membutuhkan satu `mise use aube` untuk dicoba.
Jika Anda sudah menguji API dengan klien yang cepat dan berfokus pada lokal seperti Apidog, Aube adalah bagian yang cocok di sisi instalasi. Unduh Apidog jika Anda belum melakukannya, pasangkan dengan Aube untuk layanan Node Anda berikutnya, dan lihat seberapa erat lingkaran umpan balik yang Anda dapatkan.
