Skip to content

Catatan node.js

Semua tulisan
29 Okt 202611 menit bacanode.js · nodejs 26 · lts · javascript · open source · temporalBaca dalam:ENID

Node.js 26 LTS: Lithium Mengunci Dukungan Sampai 2029, dan Menutup Satu Era

Node.js 26.13.0 Lithium memindahkan Node.js 26 ke Dukungan Jangka Panjang sampai 30 April 2029, dengan Temporal secara default, V8 14.6, Undici 8, dan perbaikan keamanan Oktober.

Baris kode JavaScript berwarna yang ditampilkan pada layar gelap.

Node.js 26 kini menjadi versi yang sebaiknya dipakai untuk produksi. Pada 28 Oktober 2026, proyek Node.js merilis versi 26.13.0 dengan nama sandi Lithium. Rilis itu memindahkan lini 26.x ke Dukungan Jangka Panjang (liputan LTS LinuxCompatible, diakses 29 Oktober 2026). Rilis ini tidak menambah fitur baru. Catatan rilisnya menyatakan bahwa, selain pembaruan metadata seperti objek process.release, tidak ada perubahan lain dari versi 26.12.1. Yang berubah adalah janji dukungan di balik versi itu. Versi 26 kini menjadi target jangka panjang yang didukung dan ditambal. Dukungannya direncanakan sampai 30 April 2029.

Poin Penting

  • Node.js 26.13.0, dengan nama sandi Lithium, memindahkan lini 26.x ke Active LTS pada 28 Oktober 2026. Dukungannya berjalan sampai 30 April 2029.

  • Versi 26.13.0 tidak menambah kode baru dari 26.12.1. Ini adalah perubahan status, bukan rilis fitur. Kode yang berjalan di 26.12.1 seharusnya berperilaku sama.

  • Lini LTS ini membawa API Temporal yang aktif secara default, V8 14.6, dan Undici 8. Lini ini juga membawa perbaikan keamanan 21 Oktober 2026 untuk lini 22.x, 24.x, dan 26.x.

  • Node.js 26 adalah lini terakhir di bawah jadwal lama dua rilis besar per tahun. Mulai Node.js 27, hanya ada satu rilis besar per tahun. Setiap rilis menjadi LTS.

  • Tim yang memakai Node.js 22 sebaiknya pindah langsung ke 26, bukan berhenti di 24. Tim yang masih memakai Node.js 20 atau yang lebih lama tidak mendapat perbaikan keamanan hulu sama sekali.

Poin terakhir perlu ditekankan. Promosi LTS mudah dicatat sebagai perawatan rutin, lalu dilupakan. Promosi kali ini juga menutup satu babak. Node.js 26 adalah lini rilis terakhir yang dibangun di bawah jadwal berusia sepuluh tahun. Lini berikutnya sudah dimulai di bawah aturan baru pada hari yang sama. Memahami apa yang dikunci 26.13.0, dan apa yang datang setelahnya, membedakan pemutakhiran yang tenang dari pemutakhiran yang terburu-buru setahun kemudian.

Apa yang Diubah Node.js 26.13.0, dan Apa yang Tidak

Long-Term Support (LTS) adalah status yang diberikan proyek Node.js kepada lini rilis yang direkomendasikan untuk produksi. Status ini disertai perbaikan bug dan keamanan dalam jangka waktu tertentu. Current adalah fase sebelumnya. Pada fase ini, lini besar yang baru masih mengumpulkan perbaikan pertamanya. Fase ini belum menjadi target produksi yang direkomendasikan. Node.js 26 menghabiskan sekitar enam bulan sebagai Current setelah debutnya pada 5 Mei 2026. Promosi LTS adalah momen ketika proyek menyatakan lini itu siap menjadi basis jangka panjang.

Promosi ini mengikuti pola biasa proyek. Sebuah lini masuk Active LTS. Di sana, lini itu menerima perbaikan bug dan keamanan. Lalu, lini itu pindah ke Maintenance. Di sana, perbaikan menyempit ke masalah kritis dan keamanan. Jadwal rilis Node.js mencantumkan tanggal untuk Node.js 26. Active LTS dimulai 28 Oktober 2026. Maintenance dimulai 20 Oktober 2027. Akhir dukungan jatuh pada 30 April 2029. Node.js 24, dengan nama sandi Krypton, pindah ke Maintenance pada 20 Oktober 2026. Dukungannya berakhir 30 April 2028. Node.js 22, dengan nama sandi Jod, sudah berada di Maintenance. Dukungannya berakhir 30 April 2027.

Lini rilis

Status setelah 28 Oktober 2026

Akhir dukungan

Node.js 22 (Jod)

Maintenance LTS

30 April 2027

Node.js 24 (Krypton)

Maintenance LTS sejak 20 Oktober 2026

30 April 2028

Node.js 26 (Lithium)

Active LTS sejak 28 Oktober 2026; Maintenance sejak 20 Oktober 2027

30 April 2029

Node.js 27

Alpha sejak 28 Oktober 2026; Current pada April 2027; LTS pada Oktober 2027

30 April 2030

Jika Anda sudah memakai 26.12.1, pemutakhiran ke 26.13.0 adalah pemutakhiran terkecil yang mungkin. Hanya nomor versi dan janji dukungan yang berubah. Tidak ada perubahan kode di bawahnya. Periksa dengan node -v. Hasil 26.13.0 atau lebih tinggi berarti Anda sudah berada di lini LTS yang ditambal, menurut liputan LinuxCompatible. Jika Anda memakai build 26.x yang lebih lama, pindahlah minimal ke 26.13.0. Dengan begitu, Anda juga mendapat perbaikan keamanan Oktober yang dijelaskan di bawah.

Apa yang Sebenarnya Dibawa Lini LTS Ini

Fitur-fitur Node.js 26 hadir pada Mei 2026, bukan pada rilis LTS. Namun, label LTS-lah yang membuat fitur itu aman untuk dijadikan fondasi. Tiga fitur menentukan lini ini.

Temporal adalah API tanggal dan waktu berstandar yang dirancang untuk menggantikan objek Date di JavaScript. Date memiliki masalah yang sudah dikenal. Objek Date bisa diubah, sehingga satu fungsi dapat mengubah tanggal yang masih dipakai bagian program lain. Date juga mencampur waktu lokal dan UTC dengan cara yang membingungkan. Aritmetika akhir bulan pun menghasilkan kejutan. Temporal memisahkan konsep-konsep itu. Temporal.PlainDate menangani tanggal kalender tanpa zona waktu. Temporal.ZonedDateTime menangani satu momen dalam zona waktu tertentu. Durasi menjadi jenis tersendiri. Aritmetika menghasilkan objek baru, bukan mengubah objek lama. Di Node.js 26, Temporal aktif secara default. Tidak diperlukan flag eksperimental. Kode server baru bisa memakainya tanpa dependensi atau flag.

Hal ini paling terasa untuk pekerjaan server yang padat tanggal. Contohnya penjadwalan, penagihan, kalender, dan pengolahan log. Tim yang dulu selalu memakai pustaka tanggal untuk tiap proyek kini bisa mengerjakan banyak hal itu dengan runtime itu sendiri. Satu kehati-hatian tetap berlaku. Dukungan Temporal di peramban adalah soal terpisah dari dukungan di Node.js. Kode yang dipakai bersama server dan peramban perlu diperiksa sendiri sebelum menghapus pustaka tanggal sepenuhnya. For example, contoh ilustratif berikut memakai aritmetika tanggal yang umum. Tanggal 31 Januari ditambah satu bulan menjadi 28 Februari, bukan 3 Maret.

V8 14.6 adalah versi mesin JavaScript di Node.js 26, yang diambil dari Chromium 146. Versi ini menambah metode upsert dalam bentuk Map.prototype.getOrInsert() dan WeakMap.prototype.getOrInsert(). Metode itu mengembalikan nilai yang sudah ada, atau menyisipkan lalu mengembalikan nilai baru, dalam satu panggilan. Versi ini juga menambah perangkaian iterator lewat Iterator.concat(). Kenaikan mesin ini juga menggeser NODE_MODULE_VERSION menjadi 147. Hal itu berdampak praktis bagi pengembang add-on natif. Biner prabangun yang dikompilasi untuk Node.js yang lebih lama perlu dibangun ulang, menurut liputan LinuxCompatible. Jika dependensi natif gagal dimuat setelah pemutakhiran, pembangunan ulang untuk Node.js 26 adalah hal pertama yang perlu dicoba.

Undici 8 adalah lapisan klien HTTP di balik fetch bawaan Node.js. Node.js 26 memakai Undici 8 sebagai lapisan HTTP-nya. Pemutakhiran ini membawa keselarasan yang lebih dekat dengan spesifikasi WHATWG Fetch. Penanganan streaming dan koneksi pun menjadi lebih ketat. Bagi layanan dengan throughput tinggi, hal itu seharusnya berarti perilaku yang lebih mudah diprediksi lintas lingkungan. Hal ini juga menjadi alasan untuk menguji sebelum meluncurkan. Semantik fetch tingkat rendah dapat bergeser secara halus. Pergeseran itu hanya terungkap lewat pola permintaan yang nyata.

Node.js 26 juga menghapus permukaan lama. Penghapusan inilah bagian pemutakhiran yang paling mungkin merusak kode lama. Panduan pemutakhiran Node.js 26 dari Fireup mencantumkan penghapusan utama. http.Server.prototype.writeHeader() hilang dan digantikan writeHead(). Modul lama _stream_* hilang. module.register() tidak lagi direkomendasikan pada runtime dan mencetak peringatan. Flag --experimental-transform-types dihapus. Sebagian besar kerusakan akan datang dari dependensi transitif yang lama, bukan dari kode Anda sendiri. Jalankan seluruh rangkaian pengujian. Perhatikan peringatan deprecation sebelum lalu lintas produksi menemukan masalahnya.

Rilis Keamanan yang Diwarisi Lini LTS Ini

Seminggu sebelum promosi LTS, pada 21 Oktober 2026, Node.js merilis perbaikan keamanan untuk lini 22.x, 24.x, dan 26.x. Karena 26.13.0 berdiri langsung di atas 26.12.1, pengguna LTS mewarisi seluruh rangkaian itu. Advisori keamanan resmi Oktober 2026 mencakup sepuluh masalah pada lini-lini itu. Tingkat keparahan tertinggi dinilai High. Masalah utamanya adalah cacat pada dekoder Brotli. Masukan terkompresi yang cacat dapat menulis melewati ujung bufer internal dekoder. Advisori itu menyatakan dampaknya dapat berupa crash, pengungkapan memori proses, atau eksekusi kode jarak jauh. Dekompresi Brotli terjadi otomatis di fetch dan di pemroses body yang umum. Penyerang tidak memerlukan tindakan khusus untuk mencapai dekoder itu.

Masalah High lainnya berkumpul di sekitar TLS dan DNS. Satu masalah membiarkan host yang longgar dalam resolusi melewati pemeriksaan nama host TLS. Masalah lain mengulangi trik itu dengan alamat IP berdigit fullwidth. Masalah ketiga memotong nama yang mengandung byte NUL dalam dns.resolve. Masalah sisanya mencakup persoalan soket keep-alive, kebocoran cache entropi ke snapshot startup dan aplikasi single executable, serta dua bypass Permission Model. Rilis ini juga memperbarui dependensi bawaan. Di antaranya c-ares, Undici, dan penyimpanan root CA.

Dua detail operasional sama pentingnya dengan tambalan itu sendiri. Pertama, proses yang sedang berjalan tetap memakai dekoder lama di memori sampai proses itu berhenti. Karena itu, mulai ulang setelah pemutakhiran. Bangun ulang citra kontainer dari citra dasar yang segar. Jangan berasumsi citra lama sudah diperbaiki. Kedua, advisori itu memperingatkan bahwa versi end of life selalu terdampak saat rilis keamanan terjadi. Node.js 20 mencapai end of life pada 30 April 2026. Versi itu tidak menerima perbaikan untuk masalah-masalah ini. Jika sistem masih menjalankan Node.js 20 atau yang lebih lama, pemutakhiran bukan perawatan opsional. Pemutakhiran adalah satu-satunya jalan kembali ke lini yang ditambal.

Mengapa Node.js 26 Menjadi yang Terakhir dari Jenisnya

Di bawah jadwal yang dipakai Node.js selama satu dekade, dua rilis besar terbit tiap tahun, pada April dan Oktober. Hanya lini bernomor genap yang menjadi LTS. Lini bernomor ganjil berumur pendek sebagai rilis Current. Sebagian besar tim produksi melewatinya. Pengumuman jadwal baru dari proyek itu menyebut biaya nyata model tersebut. Rilis bernomor ganjil nyaris tidak dipakai. Perbedaan ganjil dan genap membingungkan pendatang baru. Tim yang sebagian besar relawan harus memelihara empat atau lima lini aktif sekaligus. Setiap lini tambahan menambah pekerjaan backport.

Aspek

Sampai Node.js 26

Mulai Node.js 27

Rilis besar per tahun

Dua, pada April dan Oktober

Satu, pada April

Lini yang menjadi LTS

Hanya lini bernomor genap

Setiap lini rilis

Lini ganjil berumur pendek

Ya

Hilang, digantikan fase Alpha

Kanal pengujian awal

Rilis ganjil dan nightly

Alpha, Oktober sampai Maret, perubahan semver major diizinkan

Jendela LTS

30 bulan

30 bulan, tidak berubah

Total dukungan, Current sampai end of life

36 bulan

36 bulan, tidak berubah

Mulai Oktober 2026, model baru berlaku. Hanya ada satu rilis besar per tahun pada April. Promosi LTS terjadi tiap Oktober. Setiap rilis menjadi LTS. Fase Alpha baru berjalan enam bulan, Oktober sampai Maret. Fase ini mengizinkan perubahan semver major. Setelah itu, ada enam bulan sebagai Current. Lalu, ada 30 bulan sebagai LTS. Build Alpha ditandatangani, diberi tag, dan diuji. Namun, build itu tidak dimaksudkan untuk produksi. Nomor versi juga akan mengikuti tahun kalender rilis Current pertamanya. Jadi, 27.0.0 hadir pada 2027 dan 28.0.0 pada 2028.

Proyek itu tegas tentang arti perubahan ini bagi sebagian besar tim. Jika Anda selama ini hanya memutakhirkan ke versi LTS, hampir tidak ada yang berubah selain penomoran versi. Perubahan ini paling penting bagi penulis pustaka. Mereka diminta menguji rilis Alpha dalam continuous integration sedini mungkin. Bug yang baru ditemukan setelah promosi LTS adalah bug yang akan dihadapi pengguna. Node.js 27 membuka kanal Alpha pada 28 Oktober 2026. Hari itu sama dengan hari Node.js 26 masuk LTS. Node.js 27 terbit sebagai 27.0.0 pada April 2027. Lalu, ia masuk LTS pada Oktober 2027.

Siapa yang Sebaiknya Pindah, dan Kapan

Jika Anda memakai Node.js 26, keputusannya sudah jelas. Pindahlah ke 26.13.0 atau yang lebih tinggi. Mulai ulang proses Anda. Bangun ulang citra Anda. Jika Anda memakai Node.js 24, Anda punya waktu sampai 30 April 2028. Namun, Node.js 24 kini berada di Maintenance. Harapkan perbaikan keamanan dan kritis, bukan fitur baru. Rencanakan pindah ke 26 sesuai jadwal Anda sendiri. Jangan menunggu sampai terdesak. For example, contoh ilustratif berikut adalah langkah pemeriksaan yang umum. Tim memeriksa node -v pada tiap server, lalu membangun ulang citra kontainer dari citra dasar yang segar. Metode artikel ini adalah membandingkan tanggal jadwal rilis resmi Node.js dan advisori keamanan Oktober 2026 dengan liputan LinuxCompatible dan panduan Fireup.

Jika Anda memakai Node.js 22, pilihannya ada di antara 24 dan 26. Target 26 lebih baik. Node.js 22 berakhir pada 30 April 2027. Berhenti di 24 hanya memberi dukungan sampai 30 April 2028. Pindah langsung ke 26 memberi dukungan sampai 30 April 2029 dengan usaha migrasi yang sama. Kehati-hatiannya adalah lompatan dari 22 juga mewarisi semua yang dihapus Node.js 25 dan penghapusan Node.js 26. Lompatan itu juga mencakup lompatan npm dari npm 10 ke npm 11. Karena itu, uji seluruh pohon dependensi. Bangun ulang add-on natif. Periksa API yang dihapus di atas.

Jika Anda memakai Node.js 20 atau yang lebih lama, perlakukan migrasi sebagai tugas keamanan, bukan item roadmap. Lini-lini itu tidak menerima perbaikan hulu. Setiap rilis keamanan berikutnya akan membuat mereka tetap terekspos. Untuk beban kerja terkontainer, sematkan citra dasar ke lini baru dan bangun ulang. Jangan menambal kontainer yang sedang berjalan. Penjelasan Docker kami membahas apa itu kontainer dan mengapa penyematan citra penting. Penjelasan CI/CD kami membahas cara pipeline otomatis menjalankan pemeriksaan pemutakhiran pada setiap perubahan, bukan setahun sekali.

Pertanyaan yang Sering Diajukan

Apakah Node.js 26.13.0 adalah rilis fitur? Bukan. Rilis ini tidak menambah kode baru dari 26.12.1, selain metadata seperti objek process.release. Pentingnya rilis ini adalah promosi LTS. Node.js 26 kini menjadi lini produksi yang direkomendasikan. Dukungannya berjalan sampai 30 April 2029.

Haruskah saya segera memutakhirkan dari Node.js 24 ke 26? Tidak mendesak. Node.js 24 berada di Maintenance LTS sampai 30 April 2028. Lini itu masih menerima perbaikan keamanan dan kritis. Rencanakan pindah ke 26 agar Anda tidak terpaksa melakukannya di akhir jendela itu. Uji dulu add-on natif dan API yang dihapus.

Bagaimana jika saya masih memakai Node.js 20? Mutakhirkan sebagai tugas keamanan. Node.js 20 mencapai end of life pada 30 April 2026. Proyek Node.js menyatakan versi end of life selalu terdampak rilis keamanan tanpa menerima perbaikan. Pindahlah ke Node.js 26 untuk jendela dukungan terpanjang.

Apakah Node.js 26 menghapus sesuatu yang dapat merusak aplikasi saya? Ya, untuk kode lama. Node.js 26 menghapus http.Server.prototype.writeHeader() dan modul lama _stream_*. Node.js 26 juga tidak lagi merekomendasikan module.register() pada runtime dan menghapus flag --experimental-transform-types. Risiko biasanya ada pada dependensi transitif yang lama. Jalankan seluruh rangkaian pengujian sebelum meluncurkan.

Apa yang berubah dengan Node.js 27? Node.js 27 adalah lini pertama di bawah jadwal tahunan baru. Alpha dimulai 28 Oktober 2026. Rilis Current terbit pada April 2027. Promosi LTS terjadi pada Oktober 2027. Akhir dukungan jatuh pada 30 April 2030. Setiap rilis mulai 27 menjadi LTS. Perbedaan ganjil dan genap hilang.

Kesimpulan

Singkatnya, 26.13.0 mengubah status, bukan kode. Node.js 26.13.0 adalah rilis yang tenang dengan pesan yang lantang. Kodenya sama dengan kode yang terbit seminggu sebelumnya. Namun, labelnya kini menyatakan produksi. Kalender di baliknya berjalan sampai 30 April 2029. Rilis ini juga menutup satu era. Rilis ini adalah lini terakhir di bawah jadwal lama dua kali setahun. Rilis ini membawa Temporal secara default, V8 modern, dan lapisan HTTP baru ke jangka panjang. Pada saat yang sama, proyek beralih ke satu rilis besar per tahun. Mutakhirkan ke 26.13.0 atau yang lebih tinggi. Mulai ulang. Bangun ulang citra Anda. Manfaatkan kelonggaran ini untuk menguji Node.js 27 Alpha dalam continuous integration sebelum ia menjadi LTS berikutnya. Mulailah dari pengumuman jadwal rilis resmi dan advisori keamanan Oktober 2026, atau baca versi bahasa Inggris artikel ini.

Tag: node.js · nodejs 26 · lts · javascript · open source · temporal

Semua tulisan