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:

  1. Tambahkan properti "type": "module" di package.json
    {
      "type": "module",
      ...
    }
  2. Atau ubah semua import ke require, contohnya
    const express = require('express');
  3. 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 

  1. Mintalah penyedia hosting untuk meningkatkan batas memori per proses di WHM (misalnya pada “Max cPanel process memory”) ke 4 GB atau lebih jika tersedia.
  2. Lakukan build atau prisma generate di lokal, kemudian upload hasilnya ke server sehingga tidak memerlukan memori build di cPanel
  3. 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 

  1. Pastikan file prisma/schema.prisma ada di dalam folder proyek
  2. Jalankan perintah dari direktori root aplikasi, misalnya
    cd /home/username/app_folder
    npx prisma generate
  3. Pastikan juga paket prisma dan @prisma/client telah terinstall
    npm install prisma @prisma/client --save-dev
  4. Jika memungkinkan, jalankan perintah build di lokal dan upload hasilnya

Tips Umum Menjalankan Node.js di cPanel

  1. Selalu jalankan npm install setelah upload file proyek, dari SSH atau menu Setup Node.js App
  2. Setelah mengubah file seperti package.json, selalu Stop lalu Start ulang aplikasi melalui dashboard cPanel
  3. Cek log error dengan
    tail -f /home/username/app_name/logs/output.log
  4. 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:

  1. Cannot use import statement outside a module → karena belum diatur mode module.
  2. Out Of Memory: wasm memory → akibat batas memori hosting.
  3. Prisma schema not found → karena file atau direktori salah.

Semua error ini bisa diatasi dengan:

  1. Mengatur "type": "module" atau menggunakan require,
  2. Melakukan build di lokal dan menghindari build server,
  3. Memastikan struktur proyek teratur dan Prisma schema ada.

Artikel Lain

WhatsApp Kami

Support : +6282138153600

Admin Finance : +6285191239466