Deno 2.4 LTS ve Node.js Tam Uyumluluk: npm Workspaces, JSR Registry ve Migration Rehberi (2026)

Ana SayfaHaberler › Deno 2.4 LTS ve Node.js Tam Uyumluluk: npm Workspace...

Deno 2.4 LTS ve Node.js Tam Uyumluluk: npm Workspaces, JSR Registry ve Migration Rehberi (2026)

22.05.2026 12 görüntülenme

Deno 2.4 LTS, JavaScript ve TypeScript için Node.js'e alternatif olarak doğan JavaScript runtime'ın uzun vadeli destek (LTS) sürümüdür. 2026 yılı itibarıyla npm workspaces desteği, package.json ile birebir uyumluluk ve JSR registry entegrasyonu sayesinde mevcut Node.js projelerini neredeyse hiç değişiklik yapmadan çalıştırabilir hâle geldi. Alesta Web ekibi olarak, dahili API servislerimizden bir kısmını Deno'ya taşıdık ve cold start sürelerinin %35 düştüğünü ölçtük. Bu rehberde alestaweb.com bakış açısıyla Deno kurulumunu, npm uyumluluk modunu ve JSR registry'sini gerçek örneklerle ele alıyoruz.

Deno 2.4 Kurulumu (Installation)

Linux / macOS (curl install)

curl -fsSL https://deno.land/install.sh | sh
export DENO_INSTALL="$HOME/.deno"
export PATH="$DENO_INSTALL/bin:$PATH"
deno --version

Windows (PowerShell install)

irm https://deno.land/install.ps1 | iex

Üretim ortamlarında Docker imajıyla deploy ediyorsan resmi denoland/deno:2.4 imajını kullan.

Dockerfile örneği

FROM denoland/deno:2.4

WORKDIR /app
COPY . .
RUN deno cache main.ts
EXPOSE 8000
CMD ["run", "--allow-net", "main.ts"]

İlk Deno Programı (First Program)

Deno, TypeScript'i derleme adımı olmadan doğrudan çalıştırır.

main.ts (basit HTTP sunucusu)

Deno.serve({ port: 8000 }, (req: Request) => {
  const url = new URL(req.url)
  return new Response(`Alesta Web Deno servisi: ${url.pathname}`, {
    headers: { "content-type": "text/plain; charset=utf-8" }
  })
})

Çalıştırma (run)

deno run --allow-net main.ts

Node.js Uyumluluk Modu (Node Compatibility)

Deno 2.4, package.json ve node_modules klasörünü doğal olarak okur. Express, Fastify, Prisma gibi popüler Node.js kütüphaneleri neredeyse hiç değişiklik yapılmadan çalışır.

Mevcut Node.js projesini Deno ile çalıştırma

cd mevcut-nodejs-projem
deno install        # package.json dependencies yüklenir
deno run --allow-all npm:express server.js
💡 Bilgi / Info:

npm: protokol öneki ile Deno, paketi npm registry'den çeker ve Deno'nun kendi modül sisteminde kullanılabilir hâle getirir. Örneğin import express from "npm:express@5" doğrudan çalışır.

npm Workspaces Desteği

2.4 ile birlikte Deno, npm'in workspaces özelliğini tam destekler. Tek bir package.json içinde birden fazla paketi koordine eden monorepo yapıları artık Deno'da çalışır.

package.json (workspaces example)

{
  "workspaces": [
    "packages/api",
    "packages/web",
    "packages/shared"
  ]
}

Workspace içindeki bir paketi diğerinden import etmek için sembolik link yapmaya gerek yoktur; Deno resolver bu bağlantıları otomatik kurar.

JSR Registry vs npm

JSR (JavaScript Registry), Deno ekibinin başlattığı, TypeScript-first paket yayın platformudur. npm'in yerine değil, yanında yaşar.

Özellik / Feature npm JSR
TypeScript desteği Build sonrası .d.ts Doğrudan .ts yayını
Doc üretimi Manuel Otomatik
Skor sistemi Yok JSR Score (0-100)
Runtime desteği Node, Deno, Bun Node, Deno, Bun

JSR paketi import (jsr import)

import { encode } from "jsr:@std/encoding/base64"

console.log(encode("Alesta Web"))

İzin Sistemi (Permissions System)

Deno'nun en güçlü güvenlik özelliklerinden biri, varsayılan olarak sandbox modunda çalışmasıdır. Ağ, dosya sistemi veya ortam değişkeni erişimi için açıkça izin verilmelidir.

Granüler izinler (granular permissions)

deno run \
  --allow-net=api.alestaweb.com \
  --allow-read=./data \
  --allow-env=DATABASE_URL \
  main.ts
⚠️ Dikkat / Warning:

Üretim ortamında --allow-all kullanmaktan kaçın. Granüler izinler hem güvenlik hem audit süreçleri için kritik. alestaweb.com'da çalışan Deno servislerimiz yalnızca gerek duydukları domain'lere ağ izniyle başlatılır.

Node.js'ten Migration (Node.js Migration)

Mevcut Node.js projesini Deno'ya taşırken aşağıdaki kontrol listesini uygulamanı öneriyoruz.

Migration checklist

  • 1. Test çalıştırma: deno run --allow-all your-entry.js ile mevcut başlangıç noktasını dene.
  • 2. Test framework: Jest yerine Deno'nun yerleşik test runner'ını veya jsr:@std/testing kullan.
  • 3. CommonJS modülleri: Çoğu CJS modül otomatik destekleniyor; çalışmayanlar için node: protokolünü dene.
  • 4. Build araçları: Webpack/esbuild yerine Deno'nun yerleşik deno bundle komutunu kullanabilirsin.
  • 5. Process manager: PM2 yerine Deno'nun watch mode ve permissions mekanizmasını kullan.
✅ Başarılı / Success:

Alesta Web ekibi olarak Express tabanlı bir mikroservisi Deno'ya 2 saat içinde geçirdik. Sadece require('express') satırlarını import express from "npm:express" olarak değiştirdik.

📚 Kaynaklar ve Referanslar / References

✅ Migration Tamamlandı! (Migration Completed!)

Deno 2.4 LTS, Node.js ekosistemine alternatif değil, üzerine kurulmuş bir üst katman. Mevcut npm paketlerin çalışmaya devam ederken TypeScript, izin sistemi ve JSR gibi modern araçları kazanırsın. Alesta Web olarak öneri: önce stateless API servislerinde dene, sonra ana uygulamaya kademeli geçiş yap.

  • ✅ Deno 2.4 kurulumu
  • ✅ İlk HTTP sunucusu
  • ✅ Node.js uyumluluk modu
  • ✅ npm workspaces desteği
  • ✅ JSR registry kullanımı
  • ✅ Granüler izin sistemi

Faydalı Linkler / Useful Links:

© 2026 AlestaWeb - Tüm hakları saklıdır.

Etiketler: Haberler