Pada 28 Oktober 2026, tim Node.js merilis v26.13.0 sekaligus memindahkan versi 26.x ke status Long Term Support dengan nama kode Lithium. Versi ini akan terus mendapat perbaikan sampai akhir April 2029. Rilis ini tidak membawa perubahan kode dari 26.12.1; yang berubah hanya metadatanya. Bagi yang menjalankan Node.js di production, tanggal ini penting karena alasan lain: seminggu sebelumnya Node.js 24 sudah masuk fase maintenance, dan Node.js 22 tinggal enam bulan lagi masa dukungannya. Artikel ini membahas apa yang baru di versi 26, apa yang biasanya rusak saat upgrade, dan cara merencanakan perpindahannya.
Posisi Setiap Versi Saat Ini
Setiap versi Node.js melewati tiga tahap. Current adalah enam bulan pertama, saat fitur baru masih ditambahkan. Active LTS berlangsung sekitar satu tahun dan mendapat perbaikan bug serta keamanan. Maintenance hanya mendapat perbaikan bug kritis dan keamanan sampai end of life. Tanggal di bawah diambil dari jadwal resmi yang diterbitkan Node.js Release Working Group.
| Versi | Status per 30 Oktober 2026 | End of life |
|---|---|---|
| 26.x (Lithium) | Active LTS sejak 28 Oktober 2026, maintenance mulai 20 Oktober 2027 | 30 April 2029 |
| 24.x (Krypton) | Maintenance sejak 20 Oktober 2026 | 30 April 2028 |
| 22.x (Jod) | Maintenance | 30 April 2027 |
| 20.x ke bawah | End of life sejak 30 April 2026 | Tidak ada perbaikan lagi |
Artinya, aplikasi di versi 24 masih aman untuk saat ini tetapi sebaiknya mulai direncanakan. Aplikasi di versi 22 hanya akan mendapat satu atau dua siklus rilis keamanan lagi. Sementara itu, yang masih memakai versi 20 sudah tidak ikut mendapat rilis keamanan Oktober 2026, padahal rilis itu menambal bug Brotli yang bisa berujung remote code execution.
Apa yang Dibawa Node.js 26
Tim yang pindah dari 24 ke 26 melompati satu versi, jadi perubahan dari Node.js 25 dan 26 datang bersamaan. Berikut yang paling mungkin terasa di kode aplikasi:
- Temporal aktif secara default. Temporal adalah API tanggal dan waktu baru pengganti Date, dengan dukungan zona waktu dan kalender yang benar. Kode seperti Temporal.Now.zonedDateTimeISO('Asia/Jakarta') langsung jalan tanpa flag atau polyfill. Ini berguna untuk penjadwalan, periode tagihan, dan apa saja yang sering salah saat konversi zona waktu, misalnya antara WIB, WITA, dan WIT.
- V8 14.6, naik dari 13.6 di Node.js 24. Selain peningkatan performa, ada Map.prototype.getOrInsert() dan getOrInsertComputed() untuk pola "ambil atau buat baru" yang sering dipakai, serta Iterator.concat() untuk menggabungkan iterator. Node.js 25 sebelumnya sudah membawa JSON.stringify yang lebih cepat dan konversi base64 serta hex bawaan di Uint8Array.
- Undici 8 sebagai mesin di balik fetch(). Kebanyakan kode tidak akan merasakan bedanya, tetapi test yang bergantung pada pesan error atau perilaku fetch yang spesifik sebaiknya dijalankan ulang.
- Type stripping TypeScript sudah stabil. Node.js bisa menjalankan file .ts secara langsung selama sintaksnya hanya yang bisa dihapus begitu saja, dan ini mencakup sebagian besar kode aplikasi. Fitur ini juga sudah stabil di 24.12, jadi bukan eksklusif versi 26.
- Web Storage tersedia tanpa flag sejak Node.js 25. Di versi 26, localStorage tetap undefined kecuali file penyimpanannya diberikan lewat --localstorage-file, sehingga library yang mengecek localStorage untuk mendeteksi browser tetap berjalan normal.
- Permission Model mendapat --allow-net. Proses yang dijalankan dengan --permission bisa diblokir agar tidak membuka koneksi jaringan kecuali diizinkan secara eksplisit.
- npm 11 sudah terbawa. Node.js 26.13.0 menyertakan npm 11.20.0, sedangkan Node.js 22 masih npm 10.9.
Yang Bisa Bikin Aplikasi Error
Antara versi 24 dan 26 ada dua versi mayor berisi pembersihan API lama. Sebagian besar aplikasi bisa upgrade tanpa masalah, tetapi dependency lama dan Docker image biasanya jadi sumber masalah.
| Perubahan | Siapa yang terdampak | Yang perlu dilakukan |
|---|---|---|
| Native addon harus di-build ulang (NODE_MODULE_VERSION 147, sebelumnya 137 di versi 24) | Package dengan kode hasil kompilasi, seperti bcrypt, sharp, better-sqlite3, canvas, atau node-rdkafka | Install ulang dependency di Node.js 26, jangan menyalin node_modules, dan update package yang belum punya binary siap pakai untuk 26 |
| Modul lama _stream_readable, _stream_writable, dan _stream_* lainnya dihapus | Package lama, sering kali jauh di dalam pohon dependency, yang masih meng-import modul itu | Jalankan test suite di 26, lalu update atau ganti package yang gagal dimuat |
| writeHeader() di http dihapus, begitu juga fs.F_OK, fs.R_OK, fs.W_OK, dan fs.X_OK | Kode lama dan middleware yang sudah tidak dirawat | Ganti dengan writeHead() dan fs.constants.F_OK dan sejenisnya |
| --experimental-transform-types dihapus | Proyek yang menjalankan TypeScript berisi enum atau namespace langsung lewat Node.js | Tetap pakai tsx atau tahap build, atau ubah enum menjadi object biasa |
| module.register() menampilkan peringatan deprecation saat runtime | Custom loader dan tool yang mengubah cara modul dimuat | Update tool-nya, atau pindahkan hook buatan sendiri ke module.registerHooks() |
| Corepack tidak lagi dibundel bersama Node.js | Dockerfile dan job CI yang menjalankan corepack enable untuk memakai pnpm atau Yarn | Install Corepack atau package manager secara eksplisit, misalnya npm install -g corepack |
| Binary resmi untuk Linux membutuhkan libatomic | Server dan image minimal yang memasang Node.js dari tarball resmi | Install libatomic1 (Debian, Ubuntu) atau libatomic (keluarga RHEL) sebelum menjalankan node |
Cara cepat menemukan sebagian besar masalah ini sebelum upgrade adalah menjalankan aplikasi dan test-nya di versi sekarang dengan --trace-deprecation, lalu membaca peringatan yang muncul. Apa pun yang sudah deprecated di versi 24 berpotensi sudah dihapus di 26.
Perlu Upgrade Sekarang?
- Proyek baru: langsung mulai di 26. Dukungannya sampai April 2029, setahun lebih lama dari versi 24.
- Sedang di versi 24: tidak perlu terburu-buru. Node.js 24 masih mendapat perbaikan keamanan sampai April 2028. Rencanakan perpindahan dalam beberapa bulan ke depan, setelah dependency utama dan platform hosting Anda resmi mendukung 26.
- Sedang di versi 22: mulai sekarang dan langsung lompat ke 26, tidak perlu berhenti di 24. Dukungannya berakhir 30 April 2027, dan dua kali upgrade jelas lebih mahal daripada sekali.
- Masih di versi 20 atau lebih lama: anggap ini mendesak. Versi tersebut sudah tidak mendapat perbaikan keamanan, dan celah-celah Oktober 2026 tetap terbuka di sana.
Cek dukungan hosting sebelum menetapkan tanggal. Docker image resmi sudah punya tag node:26. Platform managed bergerak dengan kecepatannya masing-masing. AWS Lambda, misalnya, membuka runtime nodejs26.x sebagai public preview pada Agustus 2026, dan runtime preview tidak dijamin SLA. Baca daftar runtime di dokumentasi penyedia Anda, jangan berasumsi.
Langkah Upgrade
- 1Catat semua tempat versi Node.js ditentukan: baris FROM di setiap Dockerfile, .nvmrc atau .node-version, field engines di package.json, konfigurasi CI, dan pengaturan runtime di platform hosting. Jalankan node -v di setiap server yang memasang Node.js secara langsung.
- 2Tambahkan Node.js 26 ke matrix CI di samping versi yang sekarang, lalu jalankan seluruh test suite di keduanya minimal selama satu sprint.
- 3Perbaiki yang gagal: update package yang memakai API yang sudah dihapus, build ulang native module, dan bereskan peringatan deprecation yang muncul dengan --trace-deprecation.
- 4Update Dockerfile, misalnya ke node:26-bookworm-slim atau node:26-alpine. Kalau proses build memakai corepack enable, install package manager-nya secara eksplisit. Build dari layer yang bersih supaya node_modules dari versi lama tidak terpakai lagi.
- 5Deploy ke staging dan pantau pemakaian memori, waktu respons, dan tingkat error dengan trafik yang realistis selama beberapa hari. Upgrade V8 versi mayor kadang mengubah perilaku memori, jadi bandingkan dengan angka sebelumnya.
- 6Rilis ke production satu layanan demi satu layanan, lalu update .nvmrc, field engines, dan matrix CI supaya 26 menjadi default dan kode baru tidak kembali ke versi lama.
Jadwal Rilis Berubah Setelah Versi 26
Node.js 26 adalah versi terakhir dengan pola lama, yaitu dua rilis mayor per tahun dan hanya versi genap yang menjadi LTS. Mulai Node.js 27, rilis mayor hanya sekali setahun: kanal alpha mulai Oktober, rilis Current pada April, lalu LTS pada Oktober. Semua versi akan menjadi LTS, dan nomornya mengikuti tahun, jadi 27 adalah rilis 2027 dan 28 rilis 2028. Kanal alpha untuk versi 27 sudah dibuka akhir Oktober 2026.
Bagi tim pengembang, ini membuat perencanaan lebih sederhana: upgrade sekali setahun, selalu ke versi yang menjadi LTS di bulan Oktober, dengan masa dukungan sekitar 30 bulan untuk tiap versi. Kebiasaan yang baik adalah menjadwalkan upgrade Node.js setiap November, setelah LTS baru mendapat beberapa minggu perbaikan dan platform hosting sudah menyusul. Jika Anda butuh bantuan untuk mengecek atau meng-upgrade layanan Node.js, tim managed service kami bisa menanganinya.
Poin penting
- Node.js 26.13.0 "Lithium" menjadi LTS pada 28 Oktober 2026 dan didukung sampai 30 April 2029.
- Node.js 24 masuk maintenance pada 20 Oktober 2026 dan berakhir April 2028. Node.js 22 berakhir 30 April 2027, sedangkan Node.js 20 sudah end of life.
- Node.js 26 mengaktifkan Temporal secara default dan membawa V8 14.6, Undici 8, serta npm 11.
- Masalah saat upgrade biasanya datang dari native addon, API lama yang dihapus di dependency usang, Corepack yang tidak lagi dibundel, dan libatomic di image Linux minimal.
- Mulai proyek baru di 26, pindahkan aplikasi dari 22 langsung ke 26, dan rencanakan perpindahan dari 24 setelah dependency dan hosting mendukung.
- Mulai Node.js 27, rilis mayor hanya sekali setahun dan setiap versi menjadi LTS.


