چرخه کد/بارگذاری مجدد خود را با Nodemon کاهش دهید.
Nodemon یک ابزار رابط خط فرمان است که با راه اندازی مجدد پویا برنامه Node.js در هنگام شناسایی تغییرات فایل در فهرست، به ساخت برنامه های Node.js کمک می کند.
این مقاله به شما آموزش میدهد که چگونه nodemon را متناسب با نیازهای خاص خود نصب و پیکربندی کنید، و همچنین یک خطای رایج را که هنگام استفاده از nodemon رخ میدهد کشف کنید.
چرا باید از Nodemon استفاده کنید
هنگام توسعه وب سرورها یا برنامه های باطن، مجبورید کد خود را تغییر دهید تا خطاها را مدیریت کنید و ساختار و منطق برنامه خود را بهبود بخشید.
Nodemon با راه اندازی مجدد خودکار سرور هنگام ایجاد تغییرات در کد آن کمک می کند. این به صرفه جویی در زمان کمک می کند و امکان رفع اشکال را آسان تر می کند.
نحوه نصب Nodemon
می توانید Nodemon را به صورت محلی به عنوان یک وابستگی توسعه یا به صورت سراسری در مسیر سیستم نصب کنید.
برای نصب nodemon به صورت سراسری، دستور npm زیر را در ترمینال رایانه خود اجرا کنید:
npm install nodemon --globally
برای نصب nodemon به صورت محلی، باید دستور npm زیر را در دایرکتوری پروژه خود در ترمینال خود اجرا کنید:
npm install nodemon --save-dev
راه اندازی Nodemon در برنامه وب سرور شما
راه اندازی nodemon و دریافت آن برای تماشای برنامه وب سرور شما شامل چند مرحله است. بلوک کد زیر یک اسکریپت اساسی برای سروری است که یک پیام رشته ای را به کنسول ثبت می کند:
// app.js
const express = require('express');
const app = express();
app.listen((5000), ()=>{
console.log(`I'm learning about nodemon`)
});
برای شروع تماشای این اسکریپت، دستور nodemon را به دنبال نام فایلی که باید تماشا کند اجرا کنید:
nodemon app.js
خروجی حاصل باید چیزی شبیه به متن زیر باشد:
[nodemon] starting `node app.js`
I'm learning about nodemon
هنگامی که nodemon با موفقیت راه اندازی شد، هرگونه تغییر در فایل app.js باعث بارگیری مجدد در کل برنامه سرور می شود.
می توانید با زدن کلیدهای Ctrl + C در ترمینال کامپیوتر خود از nodemon خارج شوید. همچنین می توانید با وارد کردن دستور rs، فرآیند nodemon را مجدداً به صورت دستی راه اندازی کنید.
استفاده از Nodemon با گزینه های خط فرمان
Nodemon چندین گزینه در خط فرمان دارد که می توانید از آنها برای تغییر رفتار آن استفاده کنید.
برای مشاهده لیستی از تمام گزینه های نودمون موجود و عملکردهای آنها، این دستور را اجرا کنید:
nodemon --help options
در میان بسیاری از گزینه های موجود عبارتند از:
- –delay: هنگامی که یک فایل تغییر می کند، nodemon به طور پیش فرض برای یک ثانیه قبل از شروع مجدد فرآیند منتظر می ماند. با سوئیچ –delay می توانید تاخیر متفاوتی را تعیین کنید. می توانید مدت زمانی را انتخاب کنید که نودمون قبل از راه اندازی مجدد منتظر بماند. به عنوان مثال: nodemon –delay five app.js
- –ignore: گزینه ignore switch به شما امکان می دهد فایل های خاصی را در برنامه وب سرور خود نادیده بگیرید. می توانید از گزینه switch مانند so:nodemon –ignore lib/app.js استفاده کنید
- –watch: به طور پیش فرض، هنگام اجرا، nodemon دایرکتوری کاری فعلی را نظارت می کند. برای کنترل آن گزینه، از گزینه –watch برای اضافه کردن مسیرهای فایل خاص و تغییر فهرستی که در حال تماشا است استفاده کنید. به عنوان مثال، نظارت بر دایرکتوری سرور: nodemon –watch server
- –exec: اگرچه این یک ابزار جاوا اسکریپت است، اما میتوانید از Nodemon برای تماشای فایلهای غیر جاوا اسکریپت مانند TypeScript، Python و Golang نیز استفاده کنید. می توانید از گزینه –exec برای دریافت تابع بارگذاری مجدد خودکار nodemon در چنین اسکریپت هایی استفاده کنید. به عنوان مثال، استفاده از nodemon در اسکریپت TypeScript: nodemon –exec ts-node
- –ext: Nodemon بهطور پیشفرض فایلهایی را با پسوندهای JavaScript، TypeScript، CoffeeScript و JSON جستجو میکند. این به این دلیل است که پروژههای Node.js میتوانند با فایلهای TypeScript و CoffeeScript که قبل از اجرا به جاوا اسکریپت خالص کامپایل میشوند، کار کنند. از سوی دیگر، فایلهای JSON نیز نظارت میشوند زیرا اغلب برای ذخیره ابردادههای پروژههای Node.js استفاده میشوند. میتوانید از سوییچ -e (یا –ext) برای تعیین فهرستی از فایلهای جدا شده با کاما برای تماشا استفاده کنید. به عنوان مثال، برای نظارت بر فایلهای با پسوندهای .js، .json، و .mjs:nodemon –ext js,json,mjs
nodemon --delay five app.js
nodemon --ignore lib/app.js
nodemon --watch server
nodemon --exec ts-node
nodemon --ext js,json,mjs
استفاده از فایل های پیکربندی Nodemon
Nodemon از فایل های پیکربندی محلی و جهانی پشتیبانی می کند. می توانید این موارد را در فهرست اصلی خود یا دایرکتوری ریشه پروژه پیدا کنید. آنها معمولاً فایل های nodemon.json نامیده می شوند. به این ترتیب، میتوانید پیکربندیهای nodemon خود را ذخیره کنید و به راحتی از آنها در پروژههای دیگر استفاده کنید.
گزینه های خط فرمان همیشه تنظیمات فایل پیکربندی را لغو می کنند. ترتیب اولویت کاری شامل گزینه های خط فرمان، فایل های محلی و پیکربندی است.
یک فایل پیکربندی می تواند از هر گزینه خط فرمان به عنوان مقدار کلید JSON استفاده کند.
مثلا:
{
"watch": [ "server" ],
"ext": [ "js", "ts", "json" ],
"delay": "5000",
"ignore": [ "lib/app.js" ]
}
در فایل nodemon.json فوق، nodemon طوری تنظیم شده است که دایرکتوری سرور را تماشا کند، فایل هایی را با پسوندهای .js، .ts و .json مشخص کند، 5 ثانیه تاخیر قبل از راه اندازی مجدد پس از تغییر فایل، و در نهایت نادیده گرفتن تغییرات فایل در lib/app. js.
به عنوان یک جایگزین، nodemon از استفاده از package.json برای پیکربندی پشتیبانی می کند، اگر تمام تنظیمات بسته را در یک مکان نگه دارید. در زیر nodemonConfig در فایل package.json، پیکربندی را با همان فرمتی که برای یک فایل پیکربندی انجام میدهید، مشخص کنید.
به عنوان مثال، این فایل package.json دارای همان پیکربندی فایل nodemon.json در بالا است:
{
"name": "nodemon",
"version": "",
"description": "",
"nodemonConfig": {
"watch": [
"server"
],
"ext": [ "js", "ts", "json" ],
"delay": "5",
"ignore": [
"lib/app.js"
]
}
}
مدیریت خطاهای Nodemon
در حالی که در حال توسعه برنامه خود هستید، باید خطاهای جاوا اسکریپت را در طول مسیر مدیریت کنید. برای رسیدگی به این خطاها، ابتدا باید دلیل وقوع آنها را بدانید.
در اینجا یک خطای رایج وجود دارد که هنگام کار با nodemon می توانید با آن مواجه شوید:
[nodemon] app crashed - waiting for file changes before starting...
دلایل متعددی وجود دارد که چرا این پیام خطا ممکن است رخ دهد و چندین راه برای رفع دلایل وجود دارد.
- نحو اشتباه جاوا اسکریپت در فایلهایی که nodemon در حال تماشا است. برای جلوگیری از این خطا، کد جاوا اسکریپت خود را برای شناسایی هر گونه خطای نحوی در آن مرور کنید.
- اجرای چندین کار در پس زمینه می تواند در این کار خاص اختلال ایجاد کند. سعی کنید تمام فرآیندهای پس زمینه را متوقف کنید و دوباره برنامه را اجرا کنید تا این مشکل برطرف شود.
- سازمان دهی نادرست دایرکتوری نیز می تواند مشکلاتی ایجاد کند. برای مثال، نداشتن فایلهای app.js و package.json در یک فهرست. مطمئن شوید که دایرکتوری خود را به درستی ساختار داده اید تا بر اجرای برنامه های شما تأثیری نداشته باشد.
راحت شدن با Nodemon
شما سودمندی nodemon و اینکه چگونه می تواند گردش کار بهتری ایجاد کند، خطاها را کاهش دهد و اشکال زدایی را سریعتر و آسان تر کند، دیده اید.
با این حال، هنگام کار با nodemon همچنان ممکن است خطا رخ دهد. به عنوان یک توسعه دهنده، یادگیری نحوه عیب یابی این خطاها مهم است.