티스토리 뷰

Angular 8.0.0 버전 릴리스가 5월 말에 발표되었습니다.

새로운 기능이 그렇게 많지는 않지만 좋은 것들이 몇 가지 있다고 합니다.

첫째, Differential loading

이 기능 덕분에 자동으로 더욱 퍼포먼스를 보일 수 있게 할 수 있습니다. Differential loading을 사용하면 두 가지 번들이 프로덕션 버전에서 생성이 됩니다. ES2015+를 지원하는 모던 브라우저를 위한 번들과 ES5 버전만을 지원하는 오래된 브라우저를 위한 번들을 생성합니다. 그러면 새로운 브라우저의 ES6 모듈의 지원 덕분에 일치하는 번들이 자동으로 브라우저에 불려지게 됩니다.

새로운 브라우저는 더 적은 코드를 불러올 수 있고 더 작은 양의 polyfills을 불러올 수 있습니다.

개발할 때 어떤 조치가 필요한게 아니라 ng build 를 할 때 --prod 플래그를 붙이면 자동으로 그렇게 번들링 합니다.

둘째, Lazy-loaded routes을 위한 Dynamic imports

Lazy-loaded routes (특정 라우트에 사용자가 접근할 때만 필요한 모듈을 불러오는 기능, 번들 사이즈를 줄임) 는 표준 dynamic import (함수형태의 import 방식) 문법을 사용합니다. 이 말은 Typescript와 linter가 모듈을 놓치거나 잘못타이핑한 경우를 더 잘 잡아낸다는 말입니다.

기존의 lazy-loaded import는 이런 방식입니다.

{ path: '/user', loadChildren: './user/user.module#UserModule' }

이제는 다음과 같이 쓸 수 있습니다.

{ path: '/user', loadChildren: () => import('./user/user.module').then(m => m.UserModule) }

셋째, CLI 워크플로우 향상

써드파티 라이브러리와 도구도 ng build, ng test, ng run을 할 수 있도록 확장되었습니다.

셋째, CLI 워크플로우 향상

그 외

  • Angular에서 새로운 렌더링 엔진인 Ivy와 새로운 빌드 시스템 Bazel을 공식적으로 사용할 준비를 하고 있다고 합니다.

  • Angular 8은 TypeScript 3.4에 의존합니다.

참고문헌

https://alligator.io/angular/angular-8/

https://blog.angular.io/version-8-of-angular-smaller-bundles-cli-apis-and-alignment-with-the-ecosystem-af0261112a27

댓글