Node.js 26 LTS Geçiş Rehberi: Temporal API, Kırılan Değişiklikler ve Yeni Sürüm Takvimi (2026)

Alesta WEB

Node.js 26 LTS Geçiş Rehberi: Temporal API, Kırılan Değişiklikler ve Yeni Sürüm Takvimi (2026)

Kısa cevap: Node.js 26, 28 Ekim 2026'da Aktif LTS (uzun süreli destek) aşamasına geçiyor. Mayıs'ta "Current" olarak çıkan bu sürüm, üretimde kullanılacak yeni temel sürüm olacak. Getirdikleri: varsayılan açık Temporal tarih/saat API'si, V8 14.6, Map.getOrInsert(), Iterator.concat(). Kırılan şeyler: eski _stream_* modülleri ve writeHeader() kaldırıldı, module.register() kullanımdan kalkıyor. Node.js 26 aynı zamanda tek/çift sürüm düzeninin son temsilcisi; 27'den itibaren yılda tek ana sürüm çıkacak ve hepsi LTS olacak (Node.js 26 LTS migration guide).

LTS ne demek, neden önemli? (What is Node.js LTS?)

Node.js'te çift numaralı sürümler önce altı ay "Current" olarak yayımlanır. Bu dönemde kütüphaneler uyum sağlar, hatalar ayıklanır. Ardından Ekim'de LTS'e geçer ve yaklaşık 30 ay güvenlik ve hata düzeltmesi alır. Üretim sunucuları için önerilen sürüm her zaman LTS'tir.

Node.js 26, 5 Mayıs 2026'da yayımlandı ve 28 Ekim'de Aktif LTS olacak. Bu tarihten sonra yeni projelerde varsayılan seçim 26 olmalı. Hâlâ Node.js 20 kullanıyorsanız durum acil: 20'nin desteği Nisan 2026'da sona erdi ve artık güvenlik yaması almıyor. Node.js 22 bakım aşamasında; 24 ise 26'nın Aktif LTS'e geçmesiyle birlikte bakım aşamasına giriyor, yani yalnızca kritik düzeltmeler alacak.

Temporal API varsayılan açık

JavaScript'in Date nesnesi yıllardır şikâyet konusu: değiştirilebilir (mutable), saat dilimi desteği zayıf, ay sayımı sıfırdan başlıyor, ayrıştırma davranışı ortama göre değişiyor. Bu yüzden neredeyse her projede ayrı bir tarih kütüphanesi kurulur. Temporal bu sorunlara dilin kendisinden gelen cevap ve Node.js 26'da ilk kez hiçbir bayrak gerektirmeden, global olarak kullanılabiliyor.

PHP
// Bugünün tarihi (saat bilgisi olmadan)
const bugun = Temporal.Now.plainDateISO();
const yarin = bugun.add({ days: 1 });   // bugun değişmez, yeni nesne döner

// Saat dilimine bağlı an
const istanbul = Temporal.Now.zonedDateTimeISO('Europe/Istanbul');
console.log(istanbul.toString());

// İki tarih arasındaki fark
const fark = Temporal.PlainDate.from('2026-10-28')
  .since(bugun, { largestUnit: 'day' });
console.log(fark.days);

Temporal'ın nesneleri değiştirilemez; add() yeni bir nesne döndürür. "Takvim tarihi", "duvar saati" ve "saat dilimindeki kesin an" ayrı tiplerle ifade edildiği için, Türkiye saatiyle UTC'nin karıştırılması gibi klasik hatalar tip düzeyinde engelleniyor. Yeni kodda tarih kütüphanesi eklemeden önce Temporal'ın işinizi görüp görmediğine bakmaya değer.

Kod parantezi simgesi (Code bracket symbol)
Node.js 26, Temporal'ı bayraksız sunan ilk LTS sürümü olacak. Fotoğraf: Jackson Sophat / Unsplash

Diğer yenilikler

  • V8 14.6 (Chromium 146 ile aynı motor) ve Undici 8 tabanlı fetch.
  • Map.prototype.getOrInsert() ve getOrInsertComputed(): "anahtar yoksa ekle, varsa mevcut değeri ver" kalıbı tek satır oluyor. Aynı metotlar WeakMap'te de var.
  • Iterator.concat(): birden fazla yinelenebilir nesneyi ara dizi oluşturmadan, tembel (lazy) şekilde art arda bağlıyor.
  • Kripto: Ed25519 anahtarları format: 'raw-private' ile ham olarak içe aktarılabiliyor; Ed25519 imzalarına isteğe bağlı context parametresi eklendi.
JavaScript
const sayac = new Map();
for (const kelime of kelimeler) {
  sayac.set(kelime, sayac.getOrInsert(kelime, 0) + 1);
}

const onbellek = new Map();
const deger = onbellek.getOrInsertComputed(anahtar, hesapla); // hesapla yalnızca gerekirse çalışır

Kırılan değişiklikler

DeğişiklikYerine
_stream_readable, _stream_writable, _stream_duplex, _stream_transform, _stream_passthrough, _stream_wrap kaldırıldınode:stream içindeki Readable, Writable vb.
http.Server.prototype.writeHeader() kaldırıldıwriteHead()
--experimental-transform-types bayrağı kaldırıldıTypeScript'i derleme adımıyla ya da tip silme (type stripping) ile çalıştırın
module.register() çalışma zamanında kullanımdan kalktıSenkron modül kancaları (module.registerHooks())
localStorage dosya yolu verilmezse undefined--localstorage-file ile yol verin

Kaldırılan _stream_* modüllerini doğrudan kendi kodunuzda kullanmıyor olabilirsiniz, ama eski bir bağımlılık kullanıyor olabilir. Proje kökünde şu arama hızlı bir fikir verir:

Metin
grep -rE "require\(['\"]_stream_|writeHeader\(" node_modules --include=*.js -l | head

Yerel derlenen eklentiler (native addon) için NODE_MODULE_VERSION 147 oldu; bu paketlerin yeniden derlenmesi gerekir. Kaynaktan derleyenler için en az GCC 13.2 ve Python 3.10 gerekiyor.

Sürüm takvimi değişiyor

Node.js 26, tek numaralı sürümlerin kısa ömürlü, çift numaralıların LTS olduğu düzenin son sürümü. Node.js 27'den itibaren her yıl Nisan'da tek bir ana sürüm çıkacak, sürüm numaraları yıla göre belirlenecek ve her sürüm Ekim'de LTS'e geçecek. Bu, "bu sürüm LTS olacak mı" sorusunu ortadan kaldırıyor ve yükseltme planlamasını yıllık bir döngüye bağlıyor.

Geçiş kontrol listesi

  1. Node.js 20 kullanan sunucuları öncelikle yükseltin; destek dışı.
  2. Test ortamında Node.js 26 ile testleri çalıştırın, yukarıdaki grep ile kaldırılan API'leri arayın.
  3. Native addon kullanan paketleri yeniden kurun (npm rebuild).
  4. CI imajlarını ve engines alanını güncelleyin.
  5. 28 Ekim'den sonra üretime alın; ilk LTS yamasını beklemek temkinli bir seçim.

Next.js ve benzeri çatılar üzerinde çalışan sitelerde Node.js sürümü doğrudan derleme ve çalışma ortamını etkiler; ilgili notlarımız için Next.js 16 rehberimize bakabilirsiniz. Alesta WEB olarak web yazılım projelerinde sunucu sürüm geçişlerini de üstleniyoruz.

Sık sorulan sorular

Node.js 26 ne zaman LTS olacak?

28 Ekim 2026'da Aktif LTS aşamasına geçecek.

Temporal kullanmak için bayrak gerekiyor mu?

Hayır. Node.js 26'da Temporal global olarak, bayraksız kullanılabiliyor.

Node.js 20 kullanıyorum, ne yapmalıyım?

Node.js 20'nin desteği Nisan 2026'da bitti. En kısa sürede 24 ya da 26'ya geçin.

Node.js 27 ne zaman çıkacak?

Yeni takvime göre Nisan 2027'de çıkacak ve o yılın Ekim ayında LTS olacak.

Eski stream modüllerini hangi paketler kullanıyor?

Genelde uzun süredir güncellenmemiş paketler. node_modules içinde _stream_ araması yaparak tespit edebilirsiniz.

Kapak fotoğrafı: Gabriel Heinzer / Unsplash

Hazır mısınız?

Projenizi birlikte planlayalım

Haber sitesi, adisyon, QR menü ya da kurumsal web sitesi — ihtiyacınızı dinleyelim, demo hesabı açalım ve yazılı teklifimizi iletelim. Görüşme ücretsizdir.

WhatsApp