Node.js adalah salah satu runtime JavaScript populer yang sering digunakan untuk mengembangkan aplikasi modern. Dengan bantuan NPM (Node Package Manager), pengelolaan dependensi aplikasi menjadi lebih mudah. Namun, pada hosting cPanel, terkadang pengguna menghadapi error ketika mencoba menjalankan perintah npm install
. Salah satu error yang cukup sering muncul adalah terkait dengan folder node_modules
. Artikel ini akan membahas penyebab error tersebut dan cara mengatasinya.
Penyebab Error NPM Install di Hosting cPanel
Saat menggunakan hosting berbasis cPanel dengan Node.js, salah satu error yang sering muncul terkait instalasi NPM adalah pesan berikut:
“CloudLinux NodeJS Selector demands to store node modules for application in a separate folder (virtual environment) pointed by symlink called
node_modules
. That’s why application should not contain folder/file with such name in application root.”
Pesan error ini muncul karena CloudLinux NodeJS Selector, yang merupakan fitur pada hosting berbasis cPanel untuk mengelola aplikasi Node.js, memiliki aturan khusus dalam penanganan folder node_modules
. Dalam lingkungan CloudLinux, NodeJS Selector memerlukan struktur folder yang sesuai dengan sistem virtual environment yang telah ditentukan.
Folder node_modules
adalah tempat di mana NPM menyimpan semua dependensi aplikasi Node.js. Namun, jika folder ini sudah ada di root aplikasi sebelum konfigurasi dilakukan oleh NodeJS Selector, sistem akan mendeteksi konflik. Hal ini disebabkan karena NodeJS Selector mencoba membuat symlink (tautan simbolik) ke folder node_modules
sebagai bagian dari pengaturan virtual environment. Jika folder dengan nama yang sama sudah ada, proses ini gagal dan memunculkan error.
Selain itu, error ini sering kali terjadi karena beberapa alasan tambahan, seperti:
- Pengguna Membuat Folder
node_modules
Secara Manual
Dalam beberapa kasus, pengguna mungkin secara manual menyalin atau membuat foldernode_modules
di root aplikasi. Ini sering dilakukan untuk menghemat waktu dalam menginstal ulang dependensi. Namun, praktik ini tidak kompatibel dengan cara kerja NodeJS Selector. - Proses NPM Install Dilakukan Sebelum Konfigurasi NodeJS Selector
Jika pengguna menjalankannpm install
tanpa terlebih dahulu mengatur aplikasi Node.js melalui NodeJS Selector, foldernode_modules
akan dibuat di lokasi yang tidak sesuai dengan kebutuhan sistem. - Kesalahan dalam Proses Deploy Proyek
Ketika proyek Node.js dideploy ke server hosting, foldernode_modules
sering kali sudah termasuk dalam paket yang diunggah. Ini dapat menyebabkan konflik karena NodeJS Selector memerlukan kontrol penuh atas struktur folder tersebut.
Kesalahan ini biasanya muncul pada hosting berbasis CloudLinux yang menggunakan NodeJS Selector, karena sistem ini dirancang untuk mengelola aplikasi Node.js dengan cara yang lebih terisolasi dan aman. Untuk menghindari masalah ini, sangat penting untuk memahami cara kerja NodeJS Selector dan memastikan bahwa folder node_modules
tidak dibuat atau disalin secara manual sebelum konfigurasi dilakukan.
Cara Mengatasi Error
Untuk mengatasi error ini, Anda dapat mengikuti langkah-langkah berikut:
Hapus Folder node_modules
- Masuk ke direktori aplikasi Anda menggunakan File Manager di cPanel atau menggunakan SSH.
- Cari folder
node_modules
pada hosting anda. - Kemudian Hapus folder tersebut
Tips Menghindari Error di Masa Depan
- Perbarui Konfigurasi Secara Berkala
- Selalu gunakan NodeJS Selector untuk mengelola aplikasi Node.js Anda.
- Hindari Membuat Folder
node_modules
Secara Manual- Biarkan NPM dan NodeJS Selector membuat folder ini secara otomatis.
- Pilih Hosting yang Mendukung Node.js
- Jika memungkinkan, gunakan hosting khusus yang mendukung aplikasi Node.js secara penuh.
Kesimpulan
Error NPM Install pada hosting cPanel sering kali disebabkan oleh konflik dengan folder node_modules
. Dengan menghapus folder tersebut dan membiarkan CloudLinux NodeJS Selector mengatur ulang struktur aplikasi, masalah ini dapat teratasi dengan cepat. Penting juga untuk selalu memeriksa konfigurasi Node.js Anda agar sesuai dengan kebutuhan aplikasi.
Semoga panduan ini membantu Anda mengatasi error dan membuat pengembangan aplikasi Node.js Anda lebih lancar!