# 7 Update Node.js yang Jarang Orang Tahu, Tapi Sangat Mengubah Cara Kita Ngoding (2024–2025)

Node.js berkembang sangat cepat dalam dua tahun terakhir. Banyak developer hanya tahu hal-hal mainstream seperti peningkatan performa, dukungan fetch, atau stabilnya Web Streams. Tapi di balik layar ada update-update yang *diam-diam* sangat kuat, bahkan bisa menggantikan library besar seperti dotenv atau nodemon.

Ini dia **fitur Node.js terbaru yang jarang dibahas**, tapi justru membuat pengalaman ngoding kita jadi lebih bersih, ringan, dan modern.

---

# **1\. Native** `.env` File Tanpa dotenv — Cuma dengan `--env-file`

Jarang dibahas, tapi ini *game changer*.

### Sebelumnya:

Harus install:

```typescript
npm i dotenv
```

Lalu import, load, dsb.

### Sekarang:

Node bisa baca `.env` **secara native**, cukup dengan:

```bash
node --env-file=.env app.js
```

Yang tahu sedikit. Yang pakai lebih sedikit lagi.

Tanpa library tambahan. Tanpa import. Langsung masuk ke `process.env`.

**Kapan berguna?**

* VPS kecil (hemat RAM, dependency minimal)
    
* Project monolithic seperti Hono
    
* Development cepat tanpa config ribet
    
* Script `.sh` deploy yang simpel
    

Dan ini **kompatibel penuh dengan ESM**.

---

# **2\. Native Watch Mode** `--watch` yang Sudah Stabil (No Need nodemon)

Dulu: nodemon adalah dewa.  
Sekarang: **Node.js sudah punya penggantinya yang jauh lebih ringan.**

```bash
node --watch server.js
```

Atau watch folder tertentu:

```bash
node --watch-path=src server.js
```

### Apa yang bikin ini spesial?

* Performa jauh lebih hemat dari nodemon
    
* Restart cepat
    
* Sudah **stabil** di Node 22+
    
* Tidak perlu setup atau dependency tambahan
    
* Bekerja sangat baik untuk ESM
    

Ini fitur yang *diam-diam membunuh nodemon*.

---

# **3\.** `import.meta.resolve()` Sudah Stabil — Pengganti Modern buat `require.resolve`

Di CommonJS, kita pakai:

```js
require.resolve("some-package")
```

Di ESM? Dulu ribet.  
Sekarang Node sudah punya versi resmi:

```js
const resolved = import.meta.resolve("lodash");
```

Fitur kecil tapi mengubah:

* Dynamic import
    
* File path analysis
    
* Plugin loader
    
* Framework dev mode (Hono, Vite, Bun-like loader)
    

Developer kecil jarang sadar hal ini sekarang **dipakai banyak tooling modern di balik layar.**

---

# **4\. Node Sekarang Bisa** `require()` Modul ESM (dengan Syarat!)

Ini fitur *gila*, tapi jarang dibahas.

Node 22 memperkenalkan kemampuan:

```js
require("esm-module");
```

Ya—CJS bisa require modul ESM.

**Tapi syaratnya:**

* Modul ESM tidak boleh pakai top-level await
    
* Package harus punya export condition khusus
    

Fitur ini membuat:

* Monorepo lebih mudah
    
* Library bisa berhenti dual publish (CJS + ESM)
    
* Transisi ESM jadi lebih mulus
    

Ini *revolusi pelan-pelan* untuk ekosistem paket.

---

# **5\. URL Pattern Native — Mirip Router di Hono/Cloudflare**

Node menambahkan API:

```js
const pattern = new URLPattern({ pathname: "/user/:id" });
pattern.test("https://example.com/user/123");
```

Ini sangat mirip router modern (Hono, Cloudflare Workers).

Update ini nyaris tidak dibahas, padahal:

* Bisa bikin router ringan tanpa library
    
* Bisa dipakai untuk server custom
    
* Bisa dipakai untuk middleware pattern matcher
    
* Stabil dan langsung tersedia
    

Contoh router kecil tanpa library:

```js
if (new URLPattern({ pathname: "/api/:name" }).test(req.url)) {
  // handle
}
```

Jarang dipakai, padahal powerful.

---

# **6\.** `Intl.DurationFormat` — Format Waktu Tanpa Moment.js

Banyak developer belum tahu Node sudah punya formatter durasi built-in:

```js
new Intl.DurationFormat("id", { style: "long" })
  .format({ hours: 1, minutes: 30 });
```

Hasil:

```typescript
1 jam 30 menit
```

Artinya:

* Tidak perlu Moment.js
    
* Tidak perlu dayjs untuk formatting tertentu
    
* Tidak perlu library tambahan untuk progress, timer, analytics display
    

Fitur kecil tapi membuat banyak kebutuhan harian jadi native.

---

# **7\. Test Runner Bawaan Node Sudah Dewasa**

Sedikit yang tahu bahwa test runner Node (baru sejak v18) sekarang *sangat matang*, bahkan:

* Mendukung Watch Mode
    
* Mendukung Mocking
    
* Mendukung Subtests
    
* Mendukung Coverage
    
* Tidak perlu Jest/Mocha untuk project kecil-menengah
    

Contoh:

```js
import test from 'node:test';
import assert from 'node:assert';

test("math test", () => {
  assert.equal(1 + 1, 2);
});
```

Untuk 80% kasus, ini benar-benar menggantikan Jest.

---

# **Penutup: Node.js Semakin “Batteries Included” dan Developer Tidak Sadar**

Banyak update Node.js yang tidak viral. Tidak dibahas di YouTube. Tidak masuk headline.

Namun fitur-fitur kecil ini mengubah banyak hal:

* Dependency makin sedikit
    
* Project makin ringan
    
* Startup lebih cepat
    
* ESM makin matang
    
* Workflow dev makin smooth
    
* DevOps makin gampang
    

Jika Anda ingin membuat Stack monolithic modern seperti:

* Node.js
    
* Hono
    
* Drizzle ORM
    
* PostgreSQL
    
* Vite
    

…maka fitur-fitur baru ini membantu Anda menjalankan project **lebih cepat, bersih, dan stabil tanpa alat tambahan.**
