Logo Tuxnuxt
Published on

Cara Menjalankan `yarn start` dengan PM2

Authors

Tuxnuxt : Cara Menjalankan yarn start dengan PM2

Ketika akan mendeploy aplikasi berbasis Node.js ke production, salah satu yang paling sering dipilih adalah PM2. Ya betul, manajemen proses seperti PM2 ini sangat diperlukan agar aplikasi Node.js tetap running. Kebanyakan aplikasi Node.js sekarang menggunakan perintah seperti yarn start untuk menjalankan production mode-nya.

 Cara Menjalankan yarn start dengan PM2

Tentang Yarn

Yarn sendiri adalah salah satu package manager Node.js yang populer selain npm. Banyak yang memilih Yarn dikarenakan performanya disebut-sebut lebih cepat dan ringan dibanding npm.

Menginstall Yarn

Untuk dapat menggunakan Yarn, cara mudahnya adalah perintah install berikut:

npm i yarn -g

Permasalahan

Menjalankan Yarn di production dengan PM2 ada sedikit perbedaan jika dibandingkan dengan npm. Apa bedanya? Coba lihat perbandingan berikut.

Menjalankan dengan npm

pm2 start npm --name "app name" -- start

Dengan perintah di atas, aplikasi kita sudah berjalan normal.

Menjalankan dengan yarn?

Apakah kita tinggal mengganti npm dengan yarn seperti ini?

pm2 start yarn --name api -- start

Ternyata, dengan perintah ini kita akan menemukan error:

SyntaxError: unexpected identifier

Kenapa hal ini bisa terjadi? Karena Yarn memerlukan interpreter yang di-set ke bash, yang tidak di-set secara default jika kita jalankan perintah dengan PM2 seperti contoh di atas. Sedangkan secara default PM2 men-set interpreter ke node.

Solusi Menjalankan Yarn dengan PM2

Berikut dua cara menjalankan Yarn dengan PM2.

Cara 1: Inline Script Command

Script ini tinggal dijalankan satu baris saja, jalankan di terminal pada direktori project:

pm2 start yarn --interpreter bash --name api -- start

api adalah nama aplikasi di pm2 list, bisa diganti apa saja.

Cara 2: Menggunakan Ecosystem File

Jika ingin menyimpan konfigurasi tambahan seperti env, bisa menggunakan file ecosystem. Cara ini lebih memudahkan dalam maintenance atau migrasi nantinya.

Langkah-langkah

  1. Generate file ecosystem:
pm2 ecosystem
  1. Akan tergenerate file bernama ecosystem.config.js, lalu ubah isinya menjadi seperti berikut:
module.exports = {
  apps: [
    {
      name: "yarn",
      script: "yarn",
      args: "start",
      interpreter: "/bin/bash",
      env: {
        NODE_ENV: "development", // or 'production'
      },
    },
  ],
};

Untuk name sesuaikan saja sesuai keinginan, dan untuk NODE_ENV, pastikan di-set ke production jika untuk server production.

Semoga bermanfaat.

Terimakasih
(Tuxnuxt.com)