Node.js test runner
- Node.js artık yerleşik bir test runner özelliği içeriyor
- Test dosyalarında
node:testmodülünü içe aktararak test yazabilirsiniz - Tek bir testi çalıştırma:
node --test tests/math.test.js - Test dosyalarını otomatik olarak algılar ve çalıştırır
- Yerleşik
assertmodülü kullanılarak test doğrulamaları yapılabilir - Test suite'leri ve hook'lar kullanılarak ilişkili testler gruplanıp yönetilebilir
Node.js yerel mocking
- Node.js artık yerel mocking özelliği içeriyor
- Diğer test framework'lerinin sunduğu mocking yetenekleri doğrudan Node.js içinde kullanılabilir
node:testmodülündekimockmetodu kullanılarak mocking işlevi uygulanabilir
Node.js yerel test coverage
- Test coverage, kaynak kodun hangi kısmının test edildiğini anlamaya yardımcı olur
- Node.js 20 ile birlikte yerel test coverage özelliği sunuluyor
--experimental-coveragebayrağı kullanılarak test coverage verisi üretilebilir- Coverage raporları sayesinde test edilmeyen kod alanları tespit edilebilir
Node.js watch modu
- Watch modu, dosya değişikliklerini gerçek zamanlı algılar ve script'i otomatik olarak yeniden çalıştırır
- Nodemon gibi harici bağımlılıklara ihtiyaç duyulmaz
--watchbayrağı kullanılarak dosya değişiklikleri algılanabilir ve script otomatik çalıştırılabilir
Node.js Corepack
- Corepack, proje ile paket yöneticisi arasında köprü görevi görür
- Projede kullanılacak paket yöneticisini belirtirsiniz, Corepack bunu otomatik olarak yönetir
corepack enablekomutuyla Corepack etkinleştirilebilir
Node.js .env loader
- Node.js 20'den itibaren .env dosyalarından ortam değişkenlerini yerel olarak yükleme özelliği sunuluyor
--env-filebayrağı kullanılarak .env dosyası yüklenebilir- Farklı ortamları yapılandırmak için birden fazla .env dosyası yüklenebilir
Node.js import.meta desteği
- Node.js v20.11.0 ve v21.2.0'da
import.meta.filenameveimport.meta.dirnamedestekleniyor - Dosya yolu ve dizin adını daha kolay alabilirsiniz
Node.js yerel timer promise'leri
- Node.js v15'ten itibaren timer'lar promise biçiminde kullanılabiliyor
setTimeoutvesetInterval, promise olarak kullanılarak asenkron kod daha sade yazılabilir
Node.js permission modülü
- Node.js uygulamalarının kaynak erişimini kontrol etmeye yarayan deneysel bir özellik
--experimental-permissionbayrağı kullanılarak dosya sistemi, ağ, ortam değişkenleri gibi erişimler sınırlandırılabilir
Node.js policy modülü
- Zararlı kodların yüklenmesini önlemeye yönelik bir güvenlik özelliği
--experimental-policybayrağı kullanılarak policy dosyası belirtilebilir ve modül yükleme kontrol edilebilir
7 yorum
node --run'dan bahsedilmemiş. En yeni sürümlerden itibaren NPM'ye bağımlı olmadan script çalıştırmak mümkün. Açılış onlarca kat daha hızlı.Bu kez tsboard projesi üzerinde çalışırken Bun runtime ile epey çeşitli karşılaştırmalar yaptım; Node.js gerçekten her açıdan çok iyi olsa da (1) TypeScript desteğinin olmaması (2) hız, bu iki nokta hâlâ biraz eksik kalıyor. Uyumluluk ya da donanım kaynakları konusunda pek seçici olmaması gibi yönlerinin ise gerçekten etkileyici olduğunu düşünüyorum.
TypeScript, çalışma hızı gibi unsurları göz önünde bulunduruyorsanız Bun runtime'ını da bir kez değerlendirin...!
Vay canına~ Orijinal metinde Jest'ten de bahsedilmiş.
Küçük bir projede
jest->node.jsgeçişini denedim ama doğrulama fonksiyonu desteği çok yetersiz olduğu için pek beğenmedim :(En son trendleri inanılmaz hızlı benimsiyorlar..
Ve native mocking!