- Published on
Cara Menjalankan `yarn start` dengan PM2
- Authors
- Name
- Tuxnux.com
- https://kodejs.com
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.
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
- Generate file ecosystem:
pm2 ecosystem
- 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)