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 buildnpm 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.