19 poin oleh xguru 2024-06-03 | 7 komentar | Bagikan ke WhatsApp

Test runner Node.js

  • Node.js kini menyertakan fitur test runner bawaan
  • Anda dapat menulis pengujian dengan mengimpor modul node:test di file pengujian
  • Menjalankan satu pengujian: node --test tests/math.test.js
  • Secara otomatis mendeteksi dan menjalankan file pengujian
  • Dapat memverifikasi pengujian menggunakan modul assert bawaan
  • Dapat mengelompokkan dan mengelola pengujian terkait menggunakan test suite dan hook

Mocking native Node.js

  • Node.js kini menyertakan fitur mocking native
  • Fitur mocking yang biasanya disediakan framework pengujian lain kini dapat digunakan langsung di Node.js
  • Fitur mocking dapat diimplementasikan menggunakan metode mock dari modul node:test

Test coverage native Node.js

  • Test coverage membantu memahami cakupan pengujian pada source code
  • Mulai Node.js 20, tersedia fitur test coverage native
  • Data test coverage dapat dibuat menggunakan flag --experimental-coverage
  • Laporan coverage dapat digunakan untuk mengidentifikasi area kode yang belum diuji

Mode watch Node.js

  • Mode watch mendeteksi perubahan file secara real-time dan menjalankan ulang skrip secara otomatis
  • Tidak memerlukan dependensi eksternal seperti Nodemon
  • Dapat mendeteksi perubahan file dan menjalankan skrip secara otomatis menggunakan flag --watch

Corepack Node.js

  • Corepack berperan sebagai jembatan antara proyek dan package manager
  • Anda dapat menentukan package manager yang akan digunakan proyek, dan Corepack akan mengelolanya secara otomatis
  • Corepack dapat diaktifkan dengan perintah corepack enable

Loader .env Node.js

  • Mulai Node.js 20, tersedia fitur native untuk memuat environment variable dari file .env
  • File .env dapat dimuat menggunakan flag --env-file
  • Anda dapat memuat beberapa file .env untuk mengatur berbagai environment

Dukungan import.meta Node.js

  • Node.js v20.11.0 dan v21.2.0 mendukung import.meta.filename dan import.meta.dirname
  • Nama direktori dan path file bisa diambil dengan lebih mudah

Promise timer native Node.js

  • Sejak Node.js v15, timer dapat digunakan dalam bentuk promise
  • setTimeout dan setInterval dapat digunakan sebagai promise untuk menulis kode asinkron yang lebih ringkas

Modul permission Node.js

  • Fitur eksperimental untuk mengontrol akses resource pada aplikasi Node.js
  • Akses ke file system, jaringan, environment variable, dan lainnya dapat dibatasi menggunakan flag --experimental-permission

Modul policy Node.js

  • Fitur keamanan untuk mencegah pemuatan kode berbahaya
  • Anda dapat menentukan file kebijakan menggunakan flag --experimental-policy dan mengontrol pemuatan modul

7 komentar

 
cometkim 2024-06-05

Tidak ada penyebutan node --run. Mulai versi terbaru, skrip bisa dijalankan tanpa bergantung pada NPM. Proses start-up-nya puluhan kali lebih cepat.

 
tsboard 2024-06-03

Kali ini sambil mengerjakan proyek tsboard, saya cukup banyak membandingkannya dengan runtime Bun. Node.js memang sangat bagus dalam banyak hal, tetapi (1) tidak mendukung TypeScript dan (2) soal kecepatan, dua hal ini masih terasa disayangkan. Saya juga merasa hal-hal seperti kompatibilitas dan fakta bahwa ia tidak terlalu pilih-pilih sumber daya hardware itu benar-benar luar biasa.

Jika Anda mempertimbangkan TypeScript, kecepatan eksekusi, dan sebagainya, coba pertimbangkan juga runtime Bun...!

 
[Komentar ini disembunyikan.]
 
edunga1 2024-06-03

Wah~ di artikel aslinya bahkan ada penyebutan tentang Jest juga ya.

 
edunga1 2024-06-05

Saya sempat mencoba memindahkan proyek kecil dari jest ke node.js, tapi dukungan fungsi assertion-nya terlalu minim jadi kurang bagus :(

 
kandk 2024-06-03

Cepat sekali mengadopsi tren-tren terbaru ya..

 
dylanju 2024-06-03

Wah, dan mocking native juga!