Node.js 26 Resmi LTS Lithium: Temporal API dan Daftar Cek Upgrade
  easystem   02 November 2026   Developer

Pada 28 Oktober 2026, Node.js 26.13.0 resmi menyandang status Long Term Support (LTS) dengan nama kode "Lithium", sehingga garis 26.x kini mendapat dukungan penuh sampai akhir April 2029. Sepekan sebelumnya, Node.js 24 "Krypton" sudah masuk fase maintenance dan hanya menerima perbaikan keamanan tanpa tambahan fitur. Kombinasi kedua pengumuman itu menjadikan bulan ini waktu paling tepat bagi tim yang menjalankan aplikasi JavaScript di produksi untuk merencanakan upgrade.

Apa yang baru di Node.js 26

Rilis 26.0.0 pada 5 Mei 2026 membawa sejumlah perubahan besar yang sekarang sudah stabil di jalur LTS:

  • Temporal API aktif secara default, menggantikan peran objek Date yang selama puluhan tahun menjadi sumber bug zona waktu.
  • V8 14.6 dari Chromium 146, lengkap dengan fitur bahasa baru seperti Map.prototype.getOrInsert(), getOrInsertComputed(), dan Iterator.concat().
  • Undici 8.0.2 sebagai HTTP client bawaan dengan perbaikan performa dan perilaku fetch.
  • Perbaikan keamanan dari rilis 26.12.1 pada 21 Oktober 2026, termasuk penolakan alamat IP non-kanonik di TLS serta validasi input DNS terhadap null byte.

Temporal: menghentikan bug tanggal yang berulang

Masalah klasiknya begini: tanggal "2026-11-02" tiba-tiba bergeser sehari ketika dibaca di server dengan zona waktu berbeda, karena Date memperlakukan string tanggal sebagai UTC. Temporal memisahkan konsep tanggal kalender dari waktu presisi, sehingga hasilnya konsisten di mana pun kode dijalankan.

const lama = new Date('2026-11-02');
console.log(lama.getDate()); // 1 atau 2, tergantung zona waktu server

const hari = Temporal.PlainDate.from('2026-11-02');
console.log(hari.day); // 2, tanpa pergeseran zona waktu

const sekarang = Temporal.Now.zonedDateTimeISO('Asia/Jakarta');
console.log(sekarang.add({ days: 30 }).toString());

const akhir = Temporal.PlainDate.from('2027-01-15');
console.log(akhir.since(hari).toString());

Untuk aplikasi pemerintahan maupun keuangan yang akrab dengan tenggat, jadwal, dan laporan per periode, Temporal menghilangkan kebutuhan akan library tanggal pihak ketiga pada banyak kasus.

Yang dihapus, cek sebelum upgrade

Bagian ini paling sering membuat aplikasi gagal saat pindah versi, karena Node.js 26 menghapus beberapa API lama secara permanen:

  • http.Server.prototype.writeHeader() dihapus total dan harus diganti dengan writeHead().
  • Modul internal lama _stream_wrap, _stream_readable, _stream_writable, _stream_duplex, serta _stream_passthrough tidak lagi tersedia.
  • Flag --experimental-transform-types dihapus, dan module.register() kini deprecated saat runtime sehingga proyek dengan loader kustom perlu menyesuaikan.
  • Build dari source mensyaratkan GCC 13.2 atau lebih baru.

Ada satu catatan operasional yang mudah terlewat: sejak Node.js 25, binary resmi untuk Linux di-link terhadap libatomic. Di beberapa distro paket itu belum terpasang, sehingga node -v bisa gagal dengan pesan soal libatomic.so.1. Solusinya cukup memasang paket libatomic1 di Debian/Ubuntu atau libatomic di keluarga RHEL sebelum mengganti binary.

Langkah upgrade yang aman

  1. Inventarisasi dulu. Jalankan node -v di setiap server dan periksa field engines pada package.json, karena proyek tanpa batasan versi biasanya paling rawan.
  2. Uji di lokal atau CI, jangan langsung di produksi. Gunakan nvm atau fnm untuk memasang 26.13.0 berdampingan:
    nvm install 26.13.0
    nvm use 26.13.0
    node -v
  3. Rebuild native module. Modul yang dikompilasi lewat node-gyp harus dibangun ulang karena NODE_MODULE_VERSION berubah, jadi hapus node_modules lalu instal ulang di lingkungan bersih.
  4. Nyalakan peringatan deprecation. Jalankan test suite dengan node --trace-deprecation agar pemanggilan API yang akan dihapus terlihat sebelum berubah menjadi error.
  5. Update matriks CI secara bertahap. Tambahkan Node 26 di samping 24, lalu tulis batas versi yang eksplisit:
    "engines": {
      "node": ">=26.13.0 <27"
    }
  6. Deploy bertahap. Naikkan satu layanan kecil lebih dulu, pantau log dan metrik memori selama beberapa hari, baru pindahkan layanan utama.

Kapan sebaiknya pindah?

Jadwal resmi Node.js memberi gambaran yang cukup jelas untuk perencanaan:

  • Node.js 22 "Jod" didukung sampai 30 April 2027.
  • Node.js 24 "Krypton" masuk maintenance sejak 20 Oktober 2026 dan berakhir 30 April 2028.
  • Node.js 26 "Lithium" berstatus LTS sejak 28 Oktober 2026 dan berakhir 30 April 2029.

Untuk proyek baru, 26 LTS adalah pilihan paling masuk akal, sementara aplikasi lama yang masih di 22 tidak perlu panik. Mulai uji di 26 sekarang, sebab satu tahun lagi Node 22 berhenti total. Bagi tim yang mengelola banyak aplikasi, cara paling efisien adalah menyeragamkan versi runtime di semua server dan menuliskannya di dokumentasi deployment, bukan membiarkan tiap proyek memakai versi berbeda.

Sumber: Node.js 26.13.0 "Lithium" (LTS), Changelog Node.js 26, Jadwal rilis Node.js, MDN: Temporal.

Tags :

nodejs , javascript , Backend , upgrade

Bagikan :