Pada 20 April, Node.js versi 16 baru dirilis. Di antara perubahan utama adalah pembaruan mesin JavaScript V8 ke versi 9.0, binari bawaan (binari) untuk Apple Silicon dan beberapa API, tetapi yang pertama adalah yang pertama.
Daftar lengkap perubahan dapat ditemukan di sini .
Node.js 16 akan menggantikan Node.js 15 sebagai rilis "saat ini". Status ini akan tetap bersamanya selama 6 bulan ke depan. Kemudian, pada Oktober 2021, Node.js 16 akan beralih ke status dukungan jangka panjang (LTS). Setelah transisi ke status LTS, dia akan menerima nama kode 'Gallium'.
Detail rilis dapat ditemukan di repositori Kelompok Kerja Rilis Node.js... Untuk saat ini, mari kita lihat berita terbaiknya.
Meningkatkan V8 ke versi 9.0
Pembaruan mesin JavaScript V8 adalah peningkatan kinerja, serta memberikan dukungan Node.js untuk fitur JavaScript terbaru. Ngomong-ngomong, Node.js 15 menggunakan V8 versi 8.6.
Perubahan utama pada mesin termasuk dukungan untuk indeks pencocokan ekspresi reguler, serta peningkatan akses (lebih cepat) ke properti "super".
Daftar lengkap perubahan dapat ditemukan di sini .
Indeks kesesuaian
ID yang cocok memungkinkan pengembang untuk mendapatkan larik subarray yang berisi posisi awal dan akhir (indeks) dari grup tangkapan dalam ekspresi reguler ketika ada kecocokan (atau beberapa kecocokan). Larik ini tersedia melalui properti "indeks" dari objek yang cocok. Perhatikan bahwa ekspresi reguler yang digunakan untuk menemukan kecocokan harus memiliki tanda "/ d".
const re = /(a)(b)/d // . /d
const m = re.exec('ab') //
console.log(m.indices[0]) // —
// [0, 2]
console.log(m.indices[1]) // —
// [0, 1]
console.log(m.indices[2]) // —
// [1, 2]
Mengakses properti "super"
Akses ke properti super telah ditingkatkan melalui penggunaan sistem cache built-in dan pembuatan kode yang dioptimalkan di TurboFan (TurboFan adalah kompilernya, Ignition bertanggung jawab untuk menafsirkan kode di V8). Menurut pengembang V8, kecepatan akses ke super hampir sama dengan kecepatan akses ke properti biasa.
Sumbu "Y" - jumlah operasi. Sumbu "X" - akses ke properti biasa, akses ke properti "super" (sebelum pembaruan), akses ke properti "super" (setelah pembaruan).
API Janji Pengatur Waktu Stabil
Timers Promises API menyediakan satu set alternatif timer yang mengembalikan objek "Promise", menghilangkan kebutuhan util.promisify () .
import { setTimeout } from 'timers/promises'
async function run() {
const greet = await setTimeout(3000, 'Hi!')
console.log(greet) // Hi!
}
run()
Timers Promises API diperkenalkan di Node.js 15 sebagai fitur eksperimental. Sekarang telah memperoleh status antarmuka yang stabil.
Fitur baru lainnya
Sifat dari proses rilis sedemikian rupa sehingga fitur baru muncul dalam rilis "saat ini" kira-kira setiap 2 minggu. Karena alasan ini, banyak fitur yang tersedia di Node.js 15, tetapi masih relatif baru untuk runtime.
Di antara kemungkinan-kemungkinan ini adalah sebagai berikut:
- Implementasi eksperimental dari standar Web Crypto API
- npm 7 (v7.10.0)
- Node-API versi 8
- Implementasi Stable AbortController berdasarkan AbortController Web API
- Implementasi stabil dari Source Maps v3 (NODE_OPTIONS = - enable-source-maps di terminal atau {"enable-source-maps": true} di .mocharc.json)
- atob (buffer.atob(data)) btoa (buffer.btoa(data)), API (/ «Base64»)
Node.js menyediakan binari bawaan untuk beberapa platform berbeda. Untuk setiap rilis utama, set instrumen minimum dievaluasi dan diperluas sebanyak mungkin.
Node.js 16 akan menjadi rilis binari sebaris pertama untuk Apple Silicon . Sementara tarball terpisah disediakan untuk arsitektur Intel (darwin-x64) dan ARM (darwin-arm64), "installer" (.pkg) untuk macOS adalah biner multi-arsitektur.
Untuk platform berbasis Linux, level GCC minimum untuk menghasilkan Node.js 16 adalah GCC 8.3.
Detail tentang alat dan kompiler yang didukung dapat ditemukan di sini .
Akhir dari dukungan
Pengembang Node.js mencoba meminimalkan jumlah perubahan yang dapat menyebabkan gangguan dalam ekosistem (artinya pekerjaan perpustakaan Node.js). Untuk mendeteksi perubahan tersebut, digunakan GITGM (Canary in the Gold Mine) .
Namun, beberapa fitur sudah tidak digunakan lagi. Beberapa yang paling penting adalah akses ke process.bindings () untuk beberapa modul kernel, seperti process.binding ('http_parser') atau process.binding ('url').
Perlu dicatat bahwa rilis utama baru adalah hasil dari upaya sejumlah besar orang yang tertarik untuk meningkatkan dan mengembangkan Node.js (kontributor dan kolaborator) lebih lanjut. Juga, untuk mempersiapkan rilis baru untuk produksi, banyak pekerjaan yang dilakukan Kelompok Kerja Node.js Build .
Server kami dapat digunakan untuk pengembangan dengan node.js.
Daftar menggunakan tautan di atas atau dengan mengklik spanduk dan dapatkan diskon 10% untuk bulan pertama menyewa server dengan konfigurasi apa pun!