Beberapa Error ketika Setup NodeJS App pada cPanel
Pendahuluan
Node.js semakin populer dalam pengembangan aplikasi web modern karena kemampuannya dalam menangani proses asynchronous dan real-time. Banyak penyedia hosting, termasuk shared hosting dengan cPanel, kini mendukung deployment aplikasi Node.js langsung melalui fitur Setup Node.js App.
Meskipun fitur ini memudahkan developer, tak jarang pengguna mengalami error saat setup atau menjalankan aplikasi. Kesalahan tersebut bisa terjadi karena perbedaan environment lokal dan server, keterbatasan resource, atau kesalahan konfigurasi.
Cannot use import statment outside a module
Pada log error tersebut, dijelaskan bahwa statement import tidak dapat digunakan di luar module. Hal ini terjadi karena file server.js dalam proyek Next.js menggunakan sintaks import, yang merupakan ciri khas dari ES Modules (ECMAScript Modules).
Masalah ini muncul karena secara default, Node.js di environment hosting cPanel menjalankan file menggunakan sistem module CommonJS, bukan ES Modules. Dalam sistem CommonJS, cara impor dan ekspor modul menggunakan require() untuk mengimpor modul, module.exports atau exports untuk mengekspor modul.
Karena itu, jika file server.js ditulis menggunakan sintaks ES Module (import/export), maka akan menimbulkan error jika dijalankan di lingkungan yang masih mengandalkan CommonJS.
Solusi
Untuk mengatasi error ini anda bisa:
- Tambahkan properti "type": "module" di package.json
{ "type": "module", ... }
- Atau ubah semua import ke require, contohnya
const express = require('express');
- Atau anda bisa gunakan ekstensi .mjs pada file module. Contoh server.js direname menjadi server.mjs
Out Of Memory: Cannot allocate wasm memory for new instance
Saat menggunakan library WebAssembly seperti Prisma, Sharp, bcrypt, atau build tool Next.js/Vite, server Node.js mencoba memuat modul WASM namun hosting cPanel seringkali memiliki batas memori per proses yang rendah (1–2 GB), menyebabkan error ini muncul
Solusi
- Mintalah penyedia hosting untuk meningkatkan batas memori per proses di WHM (misalnya pada “Max cPanel process memory”) ke 4 GB atau lebih jika tersedia.
- Lakukan build atau prisma generate di lokal, kemudian upload hasilnya ke server sehingga tidak memerlukan memori build di cPanel
- Hindari menjalankan npm install atau npm run build menggunakan terminal cPanel bawaan lebih stabil jika melalui SSH
Error: Could not find Prisma Schema that is required for this command
Prisma CLI membutuhkan file schema.prisma untuk menjalankan perintah seperti generate, migrate, atau db push. Jika file tidak ada atau perintah dijalankan dari direktori yang salah, Prisma akan gagal
Solusi
- Pastikan file prisma/schema.prisma ada di dalam folder proyek
- Jalankan perintah dari direktori root aplikasi, misalnya
cd /home/username/app_folder npx prisma generate
- Pastikan juga paket prisma dan @prisma/client telah terinstall
npm install prisma @prisma/client --save-dev
- Jika memungkinkan, jalankan perintah build di lokal dan upload hasilnya
Tips Umum Menjalankan Node.js di cPanel
- Selalu jalankan npm install setelah upload file proyek, dari SSH atau menu Setup Node.js App
- Setelah mengubah file seperti package.json, selalu Stop lalu Start ulang aplikasi melalui dashboard cPanel
- Cek log error dengan
tail -f /home/username/app_name/logs/output.log
- Jika aplikasi tidak berjalan karena batas CPU atau memori, laporkan ke penyedia hosting untuk penyesuaian limit LVE atau cPanel process memory.
Kesimpulan
Menjalankan aplikasi Node.js di cPanel memang praktis, tetapi sering menimbulkan error yang terkait modul (ESM), batasan memori untuk build berbasis WASM, atau hilangnya file schema Prisma. Error seperti:
- Cannot use import statement outside a module → karena belum diatur mode module.
- Out Of Memory: wasm memory → akibat batas memori hosting.
- Prisma schema not found → karena file atau direktori salah.
Semua error ini bisa diatasi dengan:
- Mengatur "type": "module" atau menggunakan require,
- Melakukan build di lokal dan menghindari build server,
- Memastikan struktur proyek teratur dan Prisma schema ada.