Alesta WEB

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
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
Ü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.jsile mevcut başlangıç noktasını dene. - 2. Test framework: Jest yerine Deno'nun yerleşik test runner'ını veya
jsr:@std/testingkullan. - 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 bundlekomutunu kullanabilirsin. - 5. Process manager: PM2 yerine Deno'nun watch mode ve permissions mekanizmasını kullan.
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.

