آنچه در این مقاله میخوانید
چرا نباید در لیارا از PM2 و یا Nodemon و Forever استفاده کنیم!
۲۳ اسفند ۱۳۹۷
در مسیر توسعهی برنامههای Node.JS، حتماً با ابزارهایی مثل Nodemon, PM2 یا Supervisor برخورد داشتهاید. این ابزارها معمولاً برای راحتتر کردن فرایند توسعه به کار میروند: اجرای خودکار مجدد برنامه پس از تغییر کد، مدیریت کرشها، مانیتورینگ منابع و حتی اجرای همزمان چند نسخه از برنامه.
اما آیا استفاده از این ابزارها در محیط production هم منطقی است؟ در سرویس ابری لیارا، بهشدت توصیه میکنیم که از این ابزارها در نسخهی نهایی برنامهتان استفاده نکنید. در ادامه دلیل این توصیه و راهکار بهتر بررسی شده است.
در ادامه خواهید خواند:
- چرا این ابزارها محبوب هستند؟
- سرویس لیارا چه جایگزینی ارائه میدهد؟
- محیط توسعه چه میشود؟
- جمع بندی

چرا این ابزارها محبوب هستند؟
ابزارهایی مانند Nodemon, PM2, Supervisor و Forever بهدلیل قابلیتهایی که در فرآیند توسعه ارائه میدهند، در بین توسعهدهندگان NodeJS بسیار محبوب شدهاند.
- بروزرسانی خودکار مرورگر یا سرور پس از اعمال تغییرات در کدها (ویژگی اصلی Nodemon)
- اجرای مجدد برنامه پس از بروز خطا یا بستهشدن ناگهانی آن (قابلیتی که در PM2 و Forever برجسته است)
- نظارت بر منابع مصرفی برنامه، مانند میزان استفاده از RAM و CPU
- کلاسترکردن برنامه برای بهرهگیری بهتر از منابع سختافزاری
- اجرای فرآیندهای برنامه در پسزمینه و مدیریت آسانتر آنها
باید توجه داشت که این قابلیتها عمدتاً در زمان توسعه مفید هستند. در محیط اجرایی (Production)، استفاده از این ابزارها معمولاً ضروری نیست و حتی میتواند باعث کندی یا افزایش پیچیدگی در اجرای برنامه شود.
با هاست ابری Node.js در لیارا، اجرای سریع، امن و بدون پیچیدگی اپلیکیشنهای نود خود را تنها در چند دقیقه آغاز کنید.
✅ پشتیبانی کامل از WebSocket ✅ استقرار آسان با CLI ✅ اتصال مستقیم به دیتابیسها و دامنه اختصاصی
خرید و راهاندازی هاست Node.js
سرویس لیارا چه جایگزینی ارائه میدهد؟
وقتی برنامهتان را روی لیارا مستقر میکنید:
- با هر دیپلوی جدید، برنامه بهصورت خودکار restart میشود.
- اگر برنامه به هر دلیلی crash کند، لیارا بهصورت خودکار آن را مجدداً اجرا میکند.
- لاگهای برنامه همیشه از طریق داشبورد قابل مشاهدهاند تا بهراحتی مشکل را پیدا و رفع کنید.
- لیارا گزارش منابع مصرفی برنامه (CPU، RAM، دیسک) را در اختیارتان میگذارد.
- قابلیت کلاسترکردن برنامه بهزودی به پنل اضافه خواهد شد.
با این امکانات، نیازی به ابزارهای جانبی نیست. کافی است اسکریپت start
برنامهتان ساده و واضح باشد:
node app.js
چطور یک برنامهی Node.js را برای محیط تولید روی سرور مجازی اوبونتو Ubuntu راهاندازی کنیم؟
تولید یک برنامه Node.js روی محیط سرور مجازی اوبونتو
محیط توسعه چه میشود؟
در محیط توسعه همچنان میتوانید از ابزارهای دلخواهتان مثل Nodemon استفاده کنید. برای جداسازی محیطها، کافی است اسکریپتهای مختلفی در فایل package.json
تعریف کنید:
// package.json
{
"scripts": {
"start": "node app.js",
"dev": "nodemon app.js"
}
}
در این مثال:
- لیارا از اسکریپت
npm start
برای اجرای برنامه استفاده میکند. - شما در محیط توسعه میتوانید با دستور
npm run dev
برنامه را با Nodemon اجرا کنید.
نحوه نصب Node.js روی سرور مجازی اوبونتو Ubuntu
نصب Node.js روی سرور مجازی اوبونتو
جمع بندی
در مجموع، ابزارهایی مانند Nodemon و PM2 در مرحلهی توسعه به بهبود تجربهی برنامهنویسی کمک میکنند، اما در محیط production دیگر ضرورتی ندارند. در بستر سرویس ابری لیارا، مدیریت اجرای برنامهها، راهاندازی مجدد خودکار پس از استقرار یا بروز خطا، و دسترسی به لاگها و منابع مصرفی، همگی بهصورت خودکار انجام میشود.
بنابراین، کافی است در فایل package.json، اسکریپت start را بهصورت مستقیم و ساده (برای مثال: node app.js
) تعریف کنید. در صورت نیاز به ابزارهای توسعه، بهتر است تنها در اسکریپتهای مخصوص development از آنها استفاده شود تا هم عملکرد برنامه در محیط عملیاتی بهینه بماند و هم فرآیند توسعه ساختارمندتر پیش برود.