رضا قهرمانی
رضا قهرمانی
خواندن ۲ دقیقه·۲ سال پیش

Dynamic command

تو پروژه اخیر ری اکتی که داشتیم، به خاطر اینکه میخواستم ساختار یکسانی برای همه پروژه ها به وجود بیارم، نیاز بود که دستور های اسکریپتی متغیر داشته باشم.
اگه بخوام دقیق تر بگم میخواستم Command های داینامیک داشته باشم که با ارسال متغیر، کامند های متفاوت در قالب یکسان ایجاد بشه.
فرض کنین پروژه خودتون رو میخواین رو پورت های متفاوتی ران کنین و میخواین کامندی رو تعریف کنین که با ارسال عدد پورت، اون عدد در قسمت مشخصی از کامند قرار بگیره، مطلبی که در این پست ذکر شده، راه حلی برای این موضوع هست.

فرض کنین یک بار پروژه رو میخواین رو پورت 3000 ران کنین:

serve -port 3000

دفعه بعد، میخواین پروژه رو، روی پورت دیگه ای ران بگیرین:

serve -port 4000

برای جلوگیری از هربار کد نویسی و تکرار نکردن کد، راه حلی که در پایین ذکر شده رو امتحان کنین.


در فایل package.json (هر پروژه node js) اسکریپت زیر رو بنویسید.

اسکریپت های نوشته شده در package.json
اسکریپت های نوشته شده در package.json


هر عبارتی که داخل % بنویسید از Command promp یا Powershell در دسترس خواهد بود و میتونید این را با دستور زیر فراخوانی کنید:

npm run serve --port=3000
npm run serve --port=4000

که خروجی که در ترمینال ران میشه به صورت زیر خواهد بود:

serve -p 3000
serve -p 4000

مثالی که گفتم نمونه ساده ای از این تکنیک بود، قطعا این روش میتونه باعث جلوگیری از تکرار و نظم دادن به اسکریپ ها کمک بکنه. علاوه بر اون اگه برنامه نویس دیگه ای بخواد رو پروژه شما کار بکنه، میدونه که چه اسکریپت هایی وجود داره و بسیار بهش کمک خواهد کرد.
استفاده دیگه این تکنیک، برای برنامه نویسان بکندی هست که از nodeJs و sequelize ORM استفاده می کنند. به عنوان مثال میتونین دستورات sequelize-cli رو به صورت اسکریپت ثابت دربیارین و با ارسال نام مدل و prop های هر مدل، کامند ها رو به شیوه ای که خودتون میخواین دربیارین.

امیدوارم براتون مفید بوده باشه.
اردتمند.

پروژهاسکریپتری اکتجاوا اسکریپتتجربه
رضا قهرمانی هستم. یک برنامه نویس.
شاید از این پست‌ها خوشتان بیاید