Dalam proyek pengembangan aplikasi web modern, saya menggunakan kombinasi beberapa stack sekaligus:

  • Next.js untuk frontend SSR
  • Node.js Express untuk backend API
  • React.js untuk beberapa standalone module
  • Windows Server sebagai environment produksi
  • PM2 sebagai process manager

Namun saat mencoba menjalankan aplikasi menggunakan PM2, saya mengalami error aneh berikut ini:

C:\PROGRAM FILES\NODEJS\NPM.CMD:1
:: Created by npm, please don't edit manually.
^
SyntaxError: Unexpected token ':'
Bash

Sudah coba banyak cara… masih gagal. Sampai akhirnya saya menemukan tips jitu dari forum yang menyelamatkan waktu saya!

💥 Penyebab Error

PM2 di Windows Server mencoba menjalankan npm dari file npm.cmd. Tapi karena file .cmd bukan JavaScript, saat PM2 mencoba mengeksekusinya sebagai JS file, muncullah error ini:

SyntaxError: Unexpected token ':'

✅ Solusi Ampuh: Jalankan Langsung npm-cli.js

Daripada menjalankan npm command biasa, gunakan path langsung ke npm-cli.js, seperti ini:

pm2 start "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" --name "MultilingualSystem" -- run start
Bash

Penjelasan:

CommandDescription
"C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js"ni adalah path ke file CLI asli milik NPM
--name "MultilingualSystem"Nama proses PM2 kamu
-- run startPerintah NPM yang ingin dijalankan (misalnya npm run start)

🔁 Langkah-langkah Lengkap

  1. Pastikan kamu sudah install PM2 secara global:
pm install -g pm2
Bash




  1. Cari path npm-cli.js:

Biasanya di:

C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js
  1. Jalankan aplikasi kamu dengan path lengkap:
pm2 start "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" --name "MultilingualSystem" -- run dev
  1. Cek status dengan:
pm2 list
  1. Simpan konfigurasi PM2 jika perlu:
pm2 save

🧠 Catatan Tambahan

  • Solusi ini hanya untuk Windows, karena Linux/macOS tidak pakai .cmd.
  • Kamu bisa membuat script khusus .bat untuk shortcut jika sering digunakan.

✨ Penutup

Semoga tutorial ini bisa membantu kamu yang sedang frustrasi dengan error SyntaxError: Unexpected token ':' saat menjalankan aplikasi di Windows Server menggunakan PM2. Kadang solusi kecil seperti ini bisa bikin kita tepuk jidat sendiri 😅.

Kalau kamu punya pengalaman serupa, boleh share di kolom komentar ya!