این هفته تونستم یک پروژه رو از انگولار ۱۶ به ۱۷ ارتقا بدم. در این مقاله میخوام مشکلاتی رو بنویسم که باهاشون برخورد کردم.
نکته اول اینکه به دلیل استفاده از ngrx در پروژه و تاخیر یکی دوماهه پکیج ngrx در پشتیبانی از نسخه ۱۷ انگولار، مدتی رو صبر کردم تا نسخه جدید بیاد.
نکته دوم اینکه به صورت استاندارد، اولین حرکت اجرای دستور زیر هست:
ولی من از این مسیر نرفتم.
در قدم اول فایل package.json رو آپدیت کردم. اول دو تا نکته بگم بعد فایل نهایی رو ببینیم.
نکته اول:
برای آپدیت علاوه بر اینکه پکیج های اصلی ( مثل core یا animation ) و ثانویه ( مثل ngrx یا animations ) رو به نسخه ۱۷ آپدیت کردم، نسخه سه تا پکیج زیر رو هم آپدیت کردم:
نکته دوم:
به دلیل ایرادی که در نهایت هم نتونستم حلش کنم ولی مشکلی هم در اجرای پروژه ایجاد نمیکرد، پکیج های angular-eslint رو در نسخه 16.3.1 نگه داشتم. با این وجود دستور ng lint درست کار میکنه و بجز یک اخطار warning مشکلی در اجرای linter پیش نیومد.
پکیج های فایل نهایی به صورت زیر آپدیت شد:
راهنمایی که سایت انگولار در اختیار برنامه نویس ها قرار داده شامل نکته های زیر هست:
در نسخه ۱۷ انگولار، تابع mutate از رده خارج شده و دیگه استفاده نمیشه. منم در یک بخش از پروژه خیلی ازش استفاده کرده بودم. مجبور شدم همه توابع mutate رو با update عوض کنم.
نکته ای که داره اینه که اگر آبجکتی به صورت mutate عوض بشه ، تابع update تغییرش نمیده. بنابر این حواستون به این نکته باشه.
در نهایت اپلیکیشن با پکیج های نسخه جدید شروع به کار کرد:)
مقاله های مرتبط:
آشنایی با انگولار سیگنال ، فیچر جذاب نسخه ۱۶
استفاده از untracked در انگولار سیگنال
امیدوارم از این مقاله لذت ببرید و براتون مفید باشه.
اگر دوست دارید میتونید از طریق صفحه لینکدین با من در ارتباط باشید :)