Angular 9.1의 새로운 기능

ngcc 호환성 컴파일러에 대한 성능 및 동시성이 개선 된 Angular 9.1이 출시되었습니다. Ivy 컴파일 및 렌더링 파이프 라인도 주목을 받아 성능이 향상되었습니다.

3 월 25 일에 발표 된 Angular 9.1은 2020 년 2 월 6 일에 프로덕션 릴리스로 출시 된 Angular 9.0 릴리스를 따릅니다. 인기있는 TypeScript 기반 프레임 워크로의 버전 9.0 업그레이드는 기본적으로 애플리케이션을 Ivy 컴파일러 및 런타임으로 전환합니다.

Ivy는 더 빠른 AOT 컴파일은 물론 더 작은 번들 크기, 더 빠른 테스트 및 더 나은 디버깅을 제공합니다. 개선 된 CSS 클래스 및 스타일 바인딩은 Ivy에서도 유형 검사, 빌드 오류 및 빌드 시간의 개선과 함께 기능합니다. 또한 Angular 9의 일부는  ng update응용 프로그램 및 해당 종속성을 업데이트하는 데 더 안정적이고 유익한 도구가 될 것을 약속합니다. 

Angular는 HTML 템플릿을 사용하여 구성 요소를 구성하는 것과 함께 응용 프로그램 용 데이터 서비스를 조립하는 데 특히 유용한 종속성 주입을 제공합니다. Angular에서 개발자는 여전히 프로그램의 필수 부분에 대해 TypeScript 코드에 연결되는 HTML 구성 요소로 구성 요소를 구성합니다.

Angular 9.1 또는 이전 릴리스를 다운로드 할 수있는 위치

GitHub 및 베타 릴리스에서 Angular 프로덕션 릴리스를 다운로드 할 수 있습니다. Angular 9로 업그레이드하기위한 가이드와 함께 Angular 업데이트 가이드가 게시되었습니다.

Angular 9.1의 새로운 기능

  • ngcc에 대한 성능 최적화와 ngcc monorepo 사용 사례에 대한 동시성 및 안정성 개선. NPM 설치 후 스크립트는 더 이상 권장되지 않습니다. ngcc를 사용하면 다른 프로세스에 잠금 파일이 있으면 비동기 처리가 일시 중지됩니다. 또한 ngcc를 사용하면 소스 맵 병합 기능이 소스 맵으로 연결된 소스 파일 트리를로드하여 단일 소스 맵으로 병합 할 수 있습니다. 이 소스 맵은 최종 생성 된 파일에서 중간 소스 맵에서 참조하는 원본 소스로 직접 매핑됩니다.
  • TypeScript 3.8이 지원됩니다.
  • i18n을 통한 국제화는 이제 RTL 로케일 정보를 지원합니다.
  • 리스너 명령에서 사용하지 않는 이벤트 인수를 제거하여 Ivy 성능이 향상되었습니다. 이전에 Ivy $event는 리스너 표현식에서 사용되지 않더라도 인수를 생성했습니다 . 이로 인해 불필요한 바이트 생성이 발생할 수 있습니다. 또한 Ivy 템플릿 검사에 대한 호환성 수정이 포함되었습니다.

Angular 9.0의 새로운 기능

Ivy를 기본값으로 설정하는 것 외에도 Angular 9.0에는 다음과 같은 새로운 기능과 개선 사항이 포함되어 있습니다.

  • 서비스 providedIn생성 을위한 에 대한 새로운 옵션 @Injectable에는 platform페이지의 모든 애플리케이션이 공유하는 특수 싱글 톤 플랫폼 인젝터에서 서비스를 사용할 수 any있도록하는, 토큰을 삽입하는 모든 모듈에서 고유 한 인스턴스를 제공하는이 포함됩니다.
  • 구성 요소 하네스는 단위 테스트의 범위가 올바르게 지정되고 덜 취약한 지 확인합니다. 구현 세부 사항은 추상화되어 있습니다.
  • 애플리케이션에 YouTube 및 Google지도 기능을 포함 할 수있는 새로운 구성 요소입니다.
  • TypeScript 3.7 및 TypeScript 3.6이 지원됩니다.
  • eventListeners의 성능이 향상되었습니다.
  • 이제의 기본 통화 코드를 CurrencyPipe구성 할 수 있습니다.
  • Ivy 렌더러의 성능을 향상시키기 위해 정보를 이미 사용할 수있는 경우 i18n 명령에서 반복 전역 상태 액세스가 제거됩니다. Ivy는 또한 추가 SafeDetection코드 제거로 인해 성능이 향상됩니다 . @ angular / localize 패키지는 .NET을 통해 Angular CLI 프로젝트에 추가 할 수 있습니다 ng add.
  • 또한 Ivy 렌더러의 경우 알 수없는 구성 요소에 대해 더 나은 오류 메시지가 제공됩니다. 또한 localize-translate소스 로케일을 지정할 수 있는 새 플래그가 추가되었습니다 .
  • 코어의 성능을 개선하기 위해 Ivy 렌더러에서 삭제가 트리 흔들림이 가능해집니다. 
  • 또한 Ivy에서는 템플릿 유형 검사가 ts.Diagnostics를 생성하도록 변경되었습니다. 이는 Angular 컴파일러가 기본 TypeScript 진단과 최적이 아닌 자체 내부 진단 형식을 모두 생성 한 디자인 문제를 해결합니다.
  • 또한 핵심을 위해 Angular는 주어진 마이그레이션 계획에 따라 새로운 마이그레이션 회로도를 추가합니다.
  • NgFormSelectorWarning선택이 제거되었습니다.
  • ngcc (Angular 호환성 컴파일러)의 경우 데코 레이팅되지 않은 하위 클래스에 대한 마이그레이션이 추가되었습니다.
  • Ivy, 컴파일러, 코어, 언어 서비스, ngcc 및 Bazel에 대한 여러 버그 수정이 이루어졌습니다.

Angular 8.2의 새로운 기능

2019 년 8 월에 출시 된 Angular 버전 8.2에는 다음이 포함됩니다.

  • 컴파일러 성능을 향상시키기 위해 객체를 복제하는 동안 프로토 타입에서 복사하는 것을 피합니다. 이렇게하면 For-in 루프가 사용 된 ApplySourceSpanTransformer 클래스의 복제 기능이 업데이트되어 프로토 타입에서 자체 속성으로 복사하여 더 많은 메모리를 사용하게됩니다.
  • TypeScript 3.5 지원.
  • Ivy 렌더러로 Kythe 도구에서 사용하는 대상 컴파일. 이렇게하면 기존 컴파일러에서 이러한 종속성을로드하는 방식으로 인해 생성되지 않는 전이 종속성에 대한 상호 참조 문제가 제거됩니다.
  • $element업그레이드 된 구성 요소 templatetemplateURL기능에 대한 지원 .
  • Bazel의 경우 사용자는 이제 Angular 컴파일을위한 사용자 지정 Bazel CompilerHost를 전달하여 TypeScript 컴파일러 호스트 재정의를 지원할 수 있습니다.
  • ngcBazel 아래 의 메모리 제한을 2GB에서 4GB로 늘리는 등 다양한 버그 수정 .

Angular 8.1의 새로운 기능

  • 하이브리드 앱의 전체 부트 스트랩없이 Angular 및 AngularJS 인젝터를 연결하는 업그레이드 / 정적 라이브러리에 대한 테스트 도우미가 제공됩니다.
  • Angular가 이전에 성능 테스트를 위해 지원했던 Web Tracing Framework와의 통합이 더 이상 사용되지 않습니다. Angular 개발 팀은 통합이 유지되지 않았으며 오늘날 대부분의 Angular 애플리케이션에서 작동하지 않을 가능성이 높다고 지적했습니다. 
  • 의 구현 definitionAndBoundSpan, 현재 이상이 바람직하다 definition. 의 구현 definition이 리팩토링되고 단순화되었습니다.
  • platform-webworker API의 지원 중단. 이 지원의 포함은 웹 컨텐츠가 백그라운드 스크립트를 실행하기 위해 Web Worker에서 전체 애플리케이션을 실행하기 위해 실험적이었습니다. 각도 지지자들은 더 이상 이것을 시도하지 않습니다.

Angular 8.1은 Bazel 빌드 도구와 Angular 코어 및 라우터에 대한 버그 수정도 제공합니다.

Angular 8.0의 새로운 기능

2019 년 5 월에 출시 된 Angular 8의 개선 사항은 다음과 같습니다.