TypeScript 3.4.x Support
انگیولار 8، از (3.4) typescript و نگارشهای بالاتر پشتیبانی میکند. اگر میخواهیم از انگیولار 8 برای App های جدید استفاده کنیم، نیاز است typescript را به نگارش 3.4 و یا بالاتر ارتقاء دهیم.
Ivy Rendering Engine
یکی از مهمترین و مورد انتظارترین ویژگیهای انگیولار 8، موتور IVY میباشد. IVY یک Angular Compiler جدید میباشد و هم چنین یک ابزار که به عنوان یک rendering pipeline جدید عمل میکند. مزیت Ivy این است که به طور قابل توجهی bundleهای کوچکی را تولید میکند (سایز bundleها را کاهش میدهد) و همچنین به آسانی میتواند کامپایل سریعی را انجام دهد. بنابراین Ivy، اساس نوآوری در دنیای انگیولار میباشد. Ivy در انگیولار 8 به صورت پیش نمایشی میباشد. هدف اصلی این نسخه این است که بازخوردها را از جامعه توسعه دهندگان انگیولار، مرتبط با Ivy دریافت کند. پیشنهاد شده است که در این روزها از Ivy برای حالت ارائهی نهایی (Production) استفاده نشود.
در ngconf سال 2019، (Brad Green)، هدایت کننده فنی تیم انگیولار گفت که در صورت استفاده از Ivy، از مزایای زیر برخوردار هستیم:
- کامپایل سریعتری را فراهم میکند (انتشار در انگیولار 9)
- بررسی type در قالبها، خیلی بیشتر بهبود یافته است؛ بهگونهای که میتوان خطاهای بیشتری را در زمان build گرفت که باعث میشود کاربران در زمان runtime به آن خطاها برخورد نکنند (انتشار در انگیولار 9).
- bundleهای با سایز کوچکتری در مقایسه با سایز bundleهای کامپایل شدهی جاری
- کدهای تولید شده توسط Angular compiler، بسیار آسانتر، برای خواندن و درک انسان است.
- آخرین و مهمترین ویژگی مورد علاقه من این است که میتوان قالبها (templates) را debug کرد. من یقین دارم که این ویژگی توسط تعداد زیادی از توسعه دهندگان مورد توجه قرار خواهد گرفت .
همانطور که در متن بالا گفته شده است اگر بخواهید در یک پروژهی انگیولار، Ivy را شامل کنید، علاوه بر حالت گفته شدهی در متن، میتوانید به صورت دستی تنظیم بالا را به پروژهی انگیولار اضافه کنید (بعد از ارتقاء به انگیولار 8). پیشنهاد شدهاست که اگر میخواهیم از Ivy در Application ها استفاده کنیم، Application را در حالت debug، همراه با AOT compilation اجرا کنید:
Bye Bye @angular/http
از نگارش 8 انگیولار، پشتیبانی از angular/http@ متوقف میشود. تا نگارش 7 انگیولار، امکان استفادهی از angular/http@ برای ما فراهم بود؛ اما استفادهی از angular/http@ منسوخ شده بود و در نگارش 4 انگیولار یک فراخوانی امن و کارآمد HTTP را با استفاده از angular/common/http@ فراهم کردند.
PNPM Support
در نگارش 8 انگیولار، پشتیبانی از یک package manager جدید به نام PNPM وجود دارد که شامل NPM و Yarn میباشد.
Support for New Builders/Architect API
نگارش جدید Angular CLI این اجازه را به ما میدهد که از نسخهی جدید Builders که به عنوان Architect API شناخته میشود، استفاده کنیم. انگیولار از Builders API برای اجرای عملیاتی مثل server, build, test, lint و e2e استفاده میکند. در ضمن میتوانیم از builders در فایل angular.json استفاده کنیم:
"projects": {
"app-name": {
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
},
"e2e": {
"builder": "@angular-devkit/build-angular:protractor",
}
}
}
}