Node.js 17 yayında!
Node.js 17'nin bugün yayınlandığını duyurmaktan heyecan duyuyoruz!
Node.js 17, Node.js 16'yı 'mevcut' yayın serisi olarak değiştiriliyor ve Node.js 16 önümüzdeki hafta uzun vadeli desteğe (LTS) terfi edicek. Yaklaşık iki haftada bir Node.js 17'nin yeni sürümlerini kontrol ederseniz en son özellikler ve değişikliklerden haberdar olabilirsiniz. Tek sayılı bir yayın satırı olarak Node.js 17, LTS'ye yükseltilmeyecektir. Yayın politikası hakkında daha fazla bilgiyi https://github.com/nodejs/release adresinde okuyabilirsiniz .
Node.js v17.0.0'ı indirmek için şu adresi ziyaret edin: https://nodejs.org/en/download/current/ .
Benzer şekilde, bu sürümde yer alan taahhütlerin listesini içeren yayın gönderisini https://nodejs.org/en/blog/release/v17.0.0 adresinde bulabilirsiniz .
Node.js 17'de sunulan bazı yeni değişiklikler ve özellikler şunlardır:
- Ek taahhüt edilen API'ler
- Node.js sürümüyle izlemeleri yığınlayın
- OpenSSL 3.0 desteği
- V8 JavaScript Motoru 9.5 olarak güncellendi
Yayın İlkeleri takiben, çalışma zamanına katkıda bulunan yeni özellikler, 'mevcut'
yayın hattında yaklaşık iki haftada bir gönderilir. Bu, ilk ana sürüme (v17.0.0) dahil edilen yeni taahhütlerin çoğunun,
değişiklikleri bozmayı içeren taahhütler olduğu anlamına
gelir. Platformun kararlılığı ve sürüm geçişlerini kullanıcılar için daha kolay
hale getirmek için bu kırılma değişikliklerinin sayısını ve kesintisini en
aza indirme önemseniliyor.
Ek Vaat Edilen API'ler
Node.js projesi içinde devam eden bir stratejik girişim , söze dayalı Node.js çekirdek API'leri sağlamaktır. Son yıllarda, Timers Promises API'sini ve Streams Promises API'sini eklenmişti. (her ikisi de Node.js 15'ten beri mevcuttur).
Node.js 17'de Readline modülü için söze dayalı API'ler sunuluyor. Readline modülü , her seferinde bir satırdan okunabilir bir akıştan ( process.stdin gibi ) veri okumak için bir arayüz sağlar .
Aşağıdaki basit örnek, readline
modülün temel kullanımını göstermektedir
:
* 'node:readline/promises' öğesinden okuma satırı olarak içe aktar;'işlemden' { girdi olarak stdin, çıktı olarak stdout } içe aktar;const rl = readline.createInterface({ girdi, çıktı });const cevap = bekliyorum rl.question('Node.js hakkında ne düşünüyorsunuz?');console.log(`Değerli geri bildiriminiz için teşekkür ederiz: ${answer}`);rl.kapat();
API belgelerinde Readline modülü hakkında daha fazla bilgi
edinebilirsiniz .
OpenSSL 3.0
Node.js şimdi yakın zamanda piyasaya sürülen OpenSSL 3.0'ı, özellikle de OpenSSL 1.1.1'den yükseltilmiş quictls/openssl'yi içeriyor . OpenSSL 1.1.1, Node.js 18 (LTS) için önerilen Kullanım Sonu tarihinden önce olan 2023–09–11'de ( OpenSSL Yayın Stratejisinden ) desteğin sonuna ulaşacaktır. Bu nedenle, bir sonraki LTS sürümünden önce kullanıcı testi ve geri bildirim için zaman sağlamak amacıyla OpenSSL 3.0'ı Node.js 17'ye dahil etmeye karar verildi.
OpenSSL 3.0'daki yeni özellikler arasında, biri Node.js'de etkinleştirilebilen bir FIPS sağlayıcısı olan Sağlayıcıların tanıtımı yer almaktadır. FIPS desteğiyle Node.js'nin nasıl oluşturulacağıyla ilgili ayrıntılar için lütfen BUILDING.md'ye bakın .
OpenSSL 3.0 API'lerinin çoğunlukla OpenSSL 1.1.1 tarafından sağlananlarla uyumlu olması gerekirken, izin verilen algoritmalar ve anahtar boyutları üzerindeki sıkı kısıtlamalar nedeniyle ekosistem üzerinde bir miktar etki olacağı tahmin ediliyor.
ERR_OSSL_EVP_UNSUPPORTED
Node.js 17 ile uygulamanızda bir hatayla karşılaşırsanız, uygulamanız veya kullandığınız bir modül,
OpenSSL 3.0 ile artık varsayılan olarak izin verilmeyen bir algoritma
veya anahtar boyutu kullanmaya çalışıyor olabilir. Bir yeni bir komut satırı seçeneği , --openssl-legacy-provider
bu sıkılır kısıtlamalar için geçici bir çözüm olarak eski sağlayıcıya
dönmek için eklenmiştir.
$ ./node — openssl-legacy-provider -p 'crypto.createHash(“md4”)'Doğramak { _seçenekler: tanımsız, [Symbol(kHandle)]: Hash {}, [Symbol(kState)]: { [Symbol(kFinalized)]: false }}
OpenSSL 3.0 sürümü hakkında daha fazla ayrıntı için lütfen OpenSSL 3.0 yayın gönderisine bakın .
Node.js sürümüyle izlemeleri yığınlayın
Yığın izleri, uygulama hatalarını teşhis etmenin önemli bir parçasıdır ve neyin yanlış gittiğine dair görünürlük sağlamaya yardımcı olur. Node.js 17'de, sürecin çıkmasına neden olan önemli bir istisna olduğunda, Node.js sürümü yığın izlemesinin sonuna eklenir.
Bildirilen hataları tanılarken, sorulan ilk sorulardan birinin 'Hangi
Node.js sürümünü kullanıyorsunuz?' olacağı sıklıkta bunu varsayılan olarak
sağlamak yararlıdır.
Node.js 17 ayrıca --no-extra-info-on-fatal-exception
bu ek bilgiyi atlamak için bir komut satırı seçeneğiyle birlikte gelir .
V8 9.5
Node.js 17.0.0'da V8 JavaScript motoru V8 9.5 olarak güncellendi. (V8 9.4, Node.js 16'da bulunan en son sürümdür).
Performans ayarlamaları ve iyileştirmelerinin yanı sıra bu
güncelleme, Intl.DisplayNames
API için desteklenen ek türler ve API'deki Genişletilmiş timeZoneName
seçeneklerle birlikte gelir Intl.DateTimeFormat
.
Daha fazla ayrıntıyı V8 9.5 yayın gönderisinde okuyabilirsiniz — https://v8.dev/blog/v8-release-95 .
Node.js 16, uzun vadeli desteğe yükseltildi
Önümüzdeki hafta Node.js 16, uzun vadeli desteğe terfi edecek. Bu önemli bir dönüm noktasıdır, çünkü birçok kullanıcı, özellikle de üretim dağıtımlarını yürütenler, yalnızca Node.js'nin uzun vadeli desteklenen sürümlerini kullanmayı tercih edecektir. Bu, bazı özelliklerin ilk kez uzun vadeli desteklenen bir sürüm hattında mevcut olacağı anlamına gelir.
Node.js 16 ve sonraki sürümleri, Node.js projeleri ile geliştirme sırasında birlikte kullanılması amaçlanan paket yöneticileri arasında bir köprü görevi gören bir komut dosyası olan Corepack'i içerir. Pratik açıdan Corepack, Yarn ve pnpm'yi kurmanıza gerek kalmadan kullanmanıza izin verecektir. Belgelerde Corepack hakkında daha fazla bilgi edinin .
Node.js 16'da V8 JavaScript Motoru V8 9.4'tür. Node.js'nin yeni JavaScript dili özelliklerini kazanması V8 JavaScript Motoru yükseltmeleri aracılığıyla gerçekleşir. Node.js 16'da aşağıdaki dil özelliklerini kazandı:
-
Array.prototype.at
(V8 9.2'den itibaren) - ECMAScript RegExp Eşleşme Endeksleri (V8 9.0'dan itibaren)
- Nedeni olan hatalar (V8 9.3'ten itibaren)
-
Object.hasOwn
(V8 9.3'ten itibaren)
Node.js 16'daki LTS'de yeni olan diğer özellikler arasında npm 8 ve Experimental Web Streams API bulunur .
Node.js 16 ayrıca Apple Silicon için önceden oluşturulmuş ikili
dosyaları gönderdiğimiz ilk LTS sürümüdür. Intel ( darwin-x64
) ve ARM ( darwin-arm64
) mimarileri için, macOS yükleyicisi ( .pkg
) bir 'şişman' (çoklu mimari) ikili dosya olarak
gönderildiği ayrı tarball'lar sağlanılıyor.
Diğer proje haberleri
Proje aynı zamanda 'Next 10' çalışmalarını da sürdürüyor. Bu çabanın amacı, Node.js'nin ilk 10 yılında başarıya neyin yol açtığını yansıtmak ve sonraki 10 yıldaki başarının yönünü belirlemektir. İlk çabalar, projenin teknik değerlerini ve önceliklerini tanımlamaya ve belgelemeye odaklanmıştı.
Bu çabayla ilgili sonraki adımlar, tartışmayı planlanan ilk konulardan ikisi olan belgeleri geliştirmek ve katkılarımızı artırmakla birlikte belirli konularda derinlemesine oturumlara ev sahipliği yaptığını duyurdu.
Node.js Takviminde bulunabilecek toplantılarımıza katılmanızı bekliyoruz .
Node.js tarafından Eylem çağrısı!
"Yeni Node.js 17 sürümünü deneyin! Geri bildiriminizi duymaktan her zaman mutlu oluruz. Uygulamalarınızı ve modüllerinizi Node.js 17 ile test etmek, projenizin gelecekteki en son Node.js değişiklikleri ve özellikleriyle uyumluluğunu sağlamanıza yardımcı olur.
Gelecek hafta uzun vadeli desteğe yükseltilecek olan Node.js 16'ya yükseltme planlarına başlamak için de iyi bir zaman olduğunu düşünüyoruz. Node.js 16, 30 Nisan 2024'e kadar desteklenmeye devam edecek.
Ayrıca, Node.js 12'nin Nisan 2022'de Kullanım Ömrü Sonu'na gireceğini de unutmayın, bu nedenle hala Node.js 12 kullanıyorsanız yükseltmeyi planlamaya başlamanızı öneririz."
Node.js sürümlerinin zaman çizelgesi için Node.js Sürüm Takvimine bakın .