Memperbaiki Error 'Digital Envelope Routines Unsupported' di Apple Silicon

1 menit baca.
Tags: Node.js

Kalau kamu pakai tooling Node di Apple Silicon dan muncul error ini:

error:0308010C:digital envelope routines::unsupported

biasanya penyebabnya ketidakcocokan OpenSSL (sering terjadi di stack Webpack lama dengan Node baru).

Kenapa bisa terjadi

Node 17+ pindah ke OpenSSL 3, sementara beberapa dependency lama masih mengharapkan perilaku OpenSSL legacy.

Biasanya muncul saat menjalankan command build seperti:

  • npm run build
  • npm run dev
  • setup CRA/Webpack lama

Workaround cepat

Untuk fix lokal sementara:

export NODE_OPTIONS=--openssl-legacy-provider
npm run build

Ini mengaktifkan legacy provider OpenSSL untuk sesi shell tersebut.

Tambahkan ke script package.json

Kalau tim butuh fix cepat yang dipakai bersama:

{
  "scripts": {
    "build": "NODE_OPTIONS=--openssl-legacy-provider webpack --mode production"
  }
}

Kalau tim kamu lintas platform, pertimbangkan cross-env.

Fix jangka panjang yang lebih baik

  • upgrade Webpack/react-scripts/package tooling
  • pakai versi Node LTS yang cocok dengan stack kamu
  • hapus flag legacy provider setelah dependency di-update

Flag sementara tidak masalah, tapi solusi yang benar tetap upgrade dependency.

Cek versi Node

node -v

Kalau kamu pakai Node yang sangat baru dengan tooling frontend lama, error ini lebih mungkin muncul.