آنچه در این مقاله میخوانید
چرا نباید در لیارا از 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 روی سرور مجازی اوبونتو
جمع بندی
در فرآیند توسعهی نرمافزارهای NodeJS، استفاده از ابزارهایی مانند Nodemon، PM2 و سایر ابزارهای مدیریت اجرای برنامه، میتواند به بهبود تجربهی برنامهنویس کمک کند و روند توسعه را تسهیل کند. با این حال، در زمان استقرار نهایی برنامه در محیط production، استفاده از این ابزارها نهتنها ضروری نیست، بلکه میتواند عملکرد برنامه را تحت تأثیر قرار دهد.
در بستر سرویس ابری لیارا، اجرای برنامهها بهصورت خودکار مدیریت میشود. برنامه پس از هر استقرار مجدداً راهاندازی میشود و در صورت بروز خطا نیز بهصورت خودکار ریاستارت خواهد شد. علاوهبراین، امکاناتی مانند مشاهده لاگها و گزارش منابع مصرفی نیز در اختیار توسعهدهنده قرار میگیرد. بنابراین، نیازی به استفاده از ابزارهای خارجی برای مدیریت اجرای برنامه وجود ندارد.
توصیه میشود در فایل package.json
، اسکریپت start
بهصورت ساده و مستقیم تعریف شود (برای مثال: node app.js
) و در صورت نیاز به ابزارهای توسعه، تنها در اسکریپتهای مخصوص محیط development از آنها استفاده شود.