← Update
·3 mnt baca·Admin

Node.js 24 Rilis: Fitur Baru yang Perlu Diketahui

Node.js 24 akhirnya stabil, dan ada beberapa perubahan yang cukup berarti — terutama buat kamu yang selama ini frustrasi dengan masalah ESM vs CommonJS.

Kalau kamu masih di Node.js 18 atau 20 dan belum punya rencana upgrade, ada beberapa fitur di Node.js 24 yang mungkin bikin kamu reconsider. Bukan semuanya dramatis, tapi beberapa di antaranya menyelesaikan masalah yang sudah lama mengganggu.

Node.js 24 dirilis April 2025 dan mulai masuk status LTS Oktober 2025. Artinya, ini versi yang aman untuk production jangka panjang — dukungan aktif sampai April 2028.

require(ESM) — Akhirnya Tidak Perlu Flag Lagi

Ini yang paling penting. Kalau kamu pernah kena error ERR_REQUIRE_ESM saat mencoba pakai library modern yang sudah pure ESM di project CommonJS, Node.js 24 menyelesaikan itu.

Sekarang kamu bisa langsung require() file .mjs atau package dengan "type": "module" tanpa perlu flag eksperimental atau konversi apapun:

// app.cjs — file CommonJS biasa
const { parseMarkdown } = require("./utils.mjs");   // ✓ langsung jalan di Node 24
const unified = require("unified");                  // ✓ meski package-nya ESM-only

Di Node.js 22 ke bawah, ini akan error. Di Node.js 24, tidak. Perubahan kecil yang menghilangkan kategori masalah cukup besar, terutama kalau kamu punya codebase lama yang belum full migration ke ESM.

WebSocket Client Built-in Sudah Stabil

Node.js 22 sudah punya WebSocket client built-in, tapi masih perlu flag --experimental-websocket. Di Node.js 24, flag itu tidak diperlukan lagi.

Yang dimaksud di sini adalah WebSocket client — bukan server. Jadi untuk script yang perlu konek ke WebSocket server eksternal (monitoring, real-time data feed, dll), kamu tidak perlu install package ws lagi:

// Sebelumnya: npm install ws, lalu import ws from "ws"
// Sekarang di Node.js 24:
const socket = new WebSocket("wss://api.contoh.com/stream");

socket.addEventListener("message", (e) => {
  const data = JSON.parse(e.data);
  console.log("Dapat data:", data);
});

Kalau kamu build WebSocket server, kamu masih perlu library seperti ws atau pakai framework yang sudah handle itu. Built-in ini hanya untuk sisi client.

V8 13.6 — Apa yang Berubah?

Node.js 24 menggunakan V8 13.6, engine JavaScript dari Chrome. Dua hal yang langsung bisa kamu pakai:

Float16Array — tipe array baru untuk angka 16-bit floating-point. Relevan kalau kamu kerja dengan machine learning inference atau data grafis. Untuk aplikasi web biasa, ini tidak terlalu berpengaruh.

Explicit Resource Management dengan keyword using sudah stabil. Ini cara elegan untuk auto-cleanup resource tanpa harus ingat tutup koneksi manual:

// Tanpa using: harus ingat tutup manual
const conn = await db.connect();
try {
  await conn.query("...");
} finally {
  conn.close(); // kalau lupa ini, leak
}

// Dengan using (Node.js 24):
await using conn = await db.connect();
await conn.query("...");
// conn.close() dipanggil otomatis saat keluar scope

Library database populer seperti Prisma dan Drizzle sudah mulai support ini di versi terbaru mereka.

Apakah Perlu Langsung Upgrade?

Kalau kamu di Node.js 20, tidak perlu buru-buru — Node.js 20 masih dapat support sampai April 2026. Tapi kalau di Node.js 18, itu sudah end of life dan upgrade lebih mendesak.

Cara upgrade via nvm:

nvm install 24
nvm use 24
nvm alias default 24
node --version  # v24.x.x

Pastikan cek compatibility library yang kamu pakai, terutama yang punya native addon (.node bindings). Sebagian besar tidak masalah, tapi ada yang perlu rebuild.

Satu hal yang layak dicatat: fitur require(ESM) yang stabil di Node.js 24 adalah alasan terkuat untuk upgrade lebih cepat dari biasanya — terutama kalau kamu punya project yang sudah lama stuck di CommonJS karena dependensi ESM-only.

Diskusi

Tinggalkan komentar