ویرگول
ورودثبت نام
رهام رفیعی تهرانی
رهام رفیعی تهرانی
خواندن ۲ دقیقه·۷ ماه پیش

ارتقای نسخه انگولار از ۱۶ به ۱۷


این هفته تونستم یک پروژه رو از انگولار ۱۶ به ۱۷ ارتقا بدم. در این مقاله میخوام مشکلاتی رو بنویسم که باهاشون برخورد کردم.

نکته اول اینکه به دلیل استفاده از ngrx در پروژه و تاخیر یکی دوماهه پکیج ngrx در پشتیبانی از نسخه ۱۷ انگولار، مدتی رو صبر کردم تا نسخه جدید بیاد.

نکته دوم اینکه به صورت استاندارد، اولین حرکت اجرای دستور زیر هست:

ولی من از این مسیر نرفتم.

قدم اول: آپدیت package.json

در قدم اول فایل package.json رو آپدیت کردم. اول دو تا نکته بگم بعد فایل نهایی رو ببینیم.

نکته اول‌:

برای آپدیت علاوه بر اینکه پکیج های اصلی ( مثل core یا animation ) و ثانویه ( مثل ngrx یا animations ) رو به نسخه ۱۷ آپدیت کردم، نسخه سه تا پکیج زیر رو هم آپدیت کردم:

  • پکیج zone.js به نسخه 0.14.3
  • پکیج rxjs به نسخه 7.8.1
  • پکیج typescript به نسخه 5.2.2

نکته دوم:

به دلیل ایرادی که در نهایت هم نتونستم حلش کنم ولی مشکلی هم در اجرای پروژه ایجاد نمیکرد، پکیج های angular-eslint رو در نسخه 16.3.1 نگه داشتم. با این وجود دستور ng lint درست کار میکنه و بجز یک اخطار warning مشکلی در اجرای linter پیش نیومد.


پکیج های فایل نهایی به صورت زیر آپدیت شد:


راهنمایی که سایت انگولار در اختیار برنامه نویس ها قرار داده شامل نکته های زیر هست:

قدم دوم: از رده خارج شدن تابع mutate در انگولار سیگنال و جایگزین کردن با update

در نسخه ۱۷ انگولار، تابع mutate از رده خارج شده و دیگه استفاده نمیشه. منم در یک بخش از پروژه خیلی ازش استفاده کرده بودم. مجبور شدم همه توابع mutate رو با update عوض کنم.

نکته ای که داره اینه که اگر آبجکتی به صورت mutate عوض بشه ، تابع update تغییرش نمیده. بنابر این حواستون به این نکته باشه.

در نهایت اپلیکیشن با پکیج های نسخه جدید شروع به کار کرد‌:)


مقاله های مرتبط:

مرور ویژگی های Angular 17

آشنایی با انگولار سیگنال ، فیچر جذاب نسخه ۱۶

استفاده از untracked در انگولار سیگنال


امیدوارم از این مقاله لذت ببرید و براتون مفید باشه.

اگر دوست دارید میتونید از طریق صفحه لینکدین با من در ارتباط باشید :)

انگولارangularانگولار ۱۷تایپ اسکریپتtypescript
برنامه نویسی یک شغل نیست، یک هنره.
شاید از این پست‌ها خوشتان بیاید