کانال تلگرام

چگونه پکیج های NPM خود را بروزرسانی کنیم؟

تاریخ : ۲۴ شهریور ۱۳۹۹
نویسنده : حمید رضا ملکی
دسته بندی ها : آموزشی

در پروژه هایی که توسعه میدهیم از کتابخانه های مختلفی استفاده میکنیم، با این حال برای جلوگیری از آسیب های احتمالی باید آنها را حتما بروزرسانی کنیم. گاهی اوقات با یک بروزرسانی میتوانیم از قابلیت های جدید یک کتابخانه استفاده کرده و از آنها لذت ببریم.

خیلی وقت ها ما این بروزرسانی ها را انجام میدهیم، ولی این کار بدون ترس و لرز نیست. در این مقاله، محبوب ترین روش ها برای خودکار کردن بروزرسانی این کتابخانه ها را بررسی خواهیم کرد و این کار را با خیال راحت انجام می دهیم.

NPMUpdate1

خودکار کردن بروزرسانی های کتابخانه NPM

همانطور که میدانید، وابستگی های NPM را در فایل package.json تعریف می کنیم. اگر به این فایل مراجعه کنید، معمولا علامت های ^ و یا ~ را در کنار نسخه کتابخانه های نصب شده می بینید.

{
  "devDependencies": {
     "serverless-dynamodb-local": "~2.2.1"
  }
}

قبل از درک این نمادها، درک مفهوم اعدادی که برای یک نسخه کتابخانه مشخص میشوند، اهمیت دارد. اگر توجه داشته باشید هر نسخه با سه عدد تعریف شده است که با نقطه هایی مانند 2.2.1 از هم جدا شده است. این اعداد به ترتیب مربوط به نسخه های Minor، Major و Patch مربوط می شوند.

major.minor.patch  2.2.1

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

نسخه Patch برای نشان دادن هرگونه بهبود عملکرد، بهبود امنیت یا رفع اشکال است. بیایید به سراغ نمادهایی که در اول هر نسخه آمده بود برویم. دو نمادی که در بالا به آنها اشاره کردیم به ما امکان می دهد تا از یک استراتژی برای خودکار سازی روند به روزرسانی وابستگی های NPM استفاده کنیم.

با این حال، رویکرد خودکارسازی نیز دارای محدودیت هایی است. در حال حاضر، به روزرسانی خودکار نسخه های Major امکان پذیر نیست زیرا احتمالاً عملکردهای موجود در آن تغییر کرده است. صرف کمی زمان برای ارزیابی و به روزرسانی نسخه های Major این کتابخانه ها ضروری است.

برای کمک در فرآیند بروزرسانی نسخه های Major میتوانید از پلاگین Version Lense استفاده کنید. این پلاگین به شما کمک می کند تا به راحتی با نگاهی به فایل package.json مشخص کنید که برای کدام بسته های NPM نسخه های جدیدتری در دسترس است.

چالش های خودکار سازی

خودکارسازی نسخه های Minor و Patch نیز با چالش های مختلفی روبرو هستند. مخرب ترین اثر این خودکارسازی این است که می تواند باعث خطا در فرآیند ساخت یک برنامه شود. ممکن است تعجب کنید که چطور چنین چیزی ممکن است، زیرا ما فقط اجازه به روزرسانی نسخه های Major یا Minor را داریم که قرار است با گذشته سازگار باشند.

اما در واقعیت کسانی که این بروزرسانی ها را انجام میدهند نیز ممکن است اشتباه کنند و گاهی منجر به خطاهای غیر منتظره در برنامه شما شوند. بنابراین برای این مشکلات باید آماده باشید و به رفع خطاها بپردازید.

آیا برای جلوگیری از مشکلات ساخت باید از همان روش دستی برای بروزرسانی استفاده کنیم؟

چرا به روزرسانی های خودکار را غیرفعال نکنیم؟ وقتی با خطاهای Build در پروژه خود رو به رو میشوم، این اولین سوالی است که همیشه در ذهن من می آید. اما اگر به تلاش برای به روز نگه داشتن آنها به صورت دستی فکر می کنید، باید بدانید که باید وقت زیادی صرف کنید.

اگر بعد از مدتی یک به روزرسانی دستی انجام دهید، ممکن است یک کتابخانه در آن دوره چندین نسخه را منتشر کرده است. از آنجا که در پروژه های خود از چندین کتابخانه استفاده کرده ایم، اگر همه نسخه ها را به یک باره به روز کنیم، شناسایی کتابخانه ایی که باعث خطا شده است،کاری چالش برانگیز خواهد بود.

در صورت بروزرسانی خودکار، هر زمان که با مشکل ساخت یا زمان اجرا رو به رو شویم، همیشه می توانیم به نسخه کامپایل شده قبلی برگردیم. این روش به ما امکان می دهد كتابخانه ای را كه باعث بروز این مسئله شده است، پیدا كرده و راهكارهایی برای حل آن پیدا كنیم.

از هر دو روش خودکار و دستی برای به روزرسانی NPM استفاده کنید

همانطور که در بالا هم گفتیم بروزرسانی خودکار وقتی عمکردها تغییر میکند، بهتر است به صورت دستی انجام شود و آنجایی که تغییرات کوچک باشند میتوان از روش خودکار استفاده کرد. بنابراین بهترین روش این است که از هر دو استفاده کنید.

نتیجه گیری

امیدوارم اهمیت استفاده از به روزرسانی خودکار و همچنین ارزیابی دوره ای با استفاده از بروزرسانی دستی را درک کرده باشید. استفاده از هر دو روش، به ما امکان می دهد تا پروژه ای بروز تر داشته باشیم و از بسیاری خطرات احتمالی جلوگیری کنیم. اگر نظری در این مورد داشتید، در انتهای همین مقاله برای ما قرار دهید.

مقالات پیشنهادی

مشاهده همه مقالات
ثبت دیدگاه

برای ارسال دیدگاه لازم است ابتدا وارد سایت شوید